1

我有 grails 使用 vaadin 和 spring 安全核心插件,但不能将这三个结合起来。如果我转到使用@Secured 的页面,它会按预期工作。但是,如果我将 @Secured 放在我的 vaadin 应用程序类中,它不会做任何事情。我要做的是保护整个 vaadin 应用程序,然后保护该应用程序中的某些内容以获得更高权限的角色。我在这里做错了什么?如果有人能指出我正确的方向,那就太棒了。谢谢!

4

3 回答 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 回答