Grails Spring安全配置通过xml

时间:2011-06-30 15:40:27

标签: security spring grails ldap

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

而不是拥有 grails.plugins.springsecurity.active = true

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

grails.plugins.springsecurity.active = com.myorg.util.BeanUtil.getBean(“repositorySettings”)。getIsSecured()

使用此方法会引发错误。有没有办法可以实现这一点,并从resources.xml

中的bean读取true / false值

1 个答案:

答案 0 :(得分:2)

这有点可能。插件插入后会加载resources.xmlresources.groovy,但之前会进行解析。因此,您可以将代码放入resources.groovy中,该代码将在解析时运行,然后插件加载配置,并确定它是否已启用。但你不能使用bean,因为它为时已晚就不会准备好了。这在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的单例,那应该没问题。