我有 grails 使用 vaadin 和 spring 安全核心插件,但不能将这三个结合起来。如果我转到使用@Secured 的页面,它会按预期工作。但是,如果我将 @Secured 放在我的 vaadin 应用程序类中,它不会做任何事情。我要做的是保护整个 vaadin 应用程序,然后保护该应用程序中的某些内容以获得更高权限的角色。我在这里做错了什么?如果有人能指出我正确的方向,那就太棒了。谢谢!
问问题
861 次
3 回答
1
看看这篇文章- 他将要保护的方法放入 Grails 服务类中,注释在其中工作,并从 vaadin 应用程序调用服务方法。
(请注意,不建议在 vaadin 应用程序中依赖依赖注入,请参阅插件文档中的 getBean(String beanName) getBean(Class beanType)
于 2012-08-16T10:05:09.047 回答
0
您需要在 Vaadin 应用程序中使用 Grails 服务。使用 Vaadin 插件,在您的 UI 或任何 Vaadin 组件中声明您的服务,例如:
import com.vaadin.grails.Grails
import com.company.app.SecurityService
class <YourComponent> extends CustomComponent implements View {
def securityService = Grails.get(SecurityService)
...
<use securityService in your component's methods>
}
在名为“securityService”的 grails 服务中,连接 springSecurityService,并使用注释或 spring-security grails 插件提供的任何内容。此外,由于 Grails 的优点,服务已经是事务性的。
@Transactional
class SecurityService {
def springSecurityService
def signOut() {
SCH.context.authentication = null
}
boolean isSignedIn() {
return springSecurityService.isLoggedIn()
}
User getCurrentUser() {
return springSecurityService.currentUser
}
...或任何安全问题。
于 2013-12-26T14:38:37.037 回答
0
您是否尝试过在 Config.groovy 中设置 URL 映射?
@Secured-annotation 将在 grails 控制器类中使用。
于 2012-08-13T08:05:59.433 回答