2012-08-13 73 views
1

我已经有了使用vaadin和spring安全核心插件的grails,但是不能把三者结合起来。如果我转到一个使用@Secured的页面,它的工作原理与之相同。但是如果我把@Secured放在我的vaadin应用程序类中,它什么都不会做。我期望做的是保护整个vaadin应用程序,然后在该应用程序中为某些更高权限角色保护一些内容。我在这里做错了什么?如果任何人都能指引我走向正确的方向,那就太棒了。谢谢!Grails,Vaadin和Spring Security Plugin在一起

回答

0

您是否尝试过在Config.groovy中设置URL映射?

@ Secured注解将用于grails控制器类。

1

查看this post - 他将要保护的方法放入Grails服务类中,注释工作正常,并从vaadin应用程序调用服务方法。

(要知道,靠依赖注入在vaadin应用不推荐,看的getBean(字符串beanName)的getBean(类beanType)在plugin docs

0

您需要使用Grails服务到您的Vaadin应用程序。 使用Vaadin插件,声明你的服务在您的用户界面或任何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,并使用弹簧安全的Grails插件提供的注释或任何东西。此外,感谢Grails goodn ess,服务已经是事务性的。

@Transactional 
class SecurityService { 

    def springSecurityService 

    def signOut() { 
     SCH.context.authentication = null 
    } 

    boolean isSignedIn() { 
     return springSecurityService.isLoggedIn() 
    } 

    User getCurrentUser() { 
     return springSecurityService.currentUser 
    } 

......或任何安全问题。

相关问题