通过xml实现Grails Spring安全配置



我是grails spring安全的新手,我想知道是否可以通过xml条目在我的应用程序中启用/禁用的安全性。

而不是grails.plugins.springsecurity.active=真正的

我想从我在resources.xml文件中声明的bean中读取值。

grails.plugins.springsecurity.active=com.myorg.util.BeanUnutil.getBean("repositorySettings").getIsSecured()

使用这种方法会产生错误。有没有一种方法可以实现这一点,并从resources.xml

中的bean读取true/false值

这在一定程度上是可能的。resources.xmlresources.groovy是在插件加载之后加载的,但在之前解析。因此,您可以将代码放入resources.groovy中,在插件加载配置并确定是否启用配置之前,该代码将在解析时运行。但你不能用豆子来做这件事,因为它要等到太晚才能做好。这在resources.xml中是不可能的,因为这只是XML,但resources.groovy允许Groovy代码和bean定义:

import com.pbbi.mimgr.util.BeanUtil
beans = {
   def grailsApplication = springConfig.unrefreshedApplicationContext.grailsApplication
   def securityConfig = grailsApplication.config.grails.plugins.springsecurity
   securityConfig.active = BeanUtil.getBean('repositorySettings').isSecured
}

如果BeanUtil访问ApplicationContext,那么这将不起作用。但如果它访问的是不是Spring bean的singleton,那应该没问题。

最新更新