Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security GrailsSpring通过xml进行安全配置_Security_Spring_Grails_Ldap - Fatal编程技术网

Security GrailsSpring通过xml进行安全配置

Security GrailsSpring通过xml进行安全配置,security,spring,grails,ldap,Security,Spring,Grails,Ldap,我是GrailsSpringSecurity的新手,我想知道是否可以通过xml条目启用/禁用应用程序中的安全性 而不是 grails.plugins.springsecurity.active=true 我想从我在resources.xml文件中声明的bean中读取值 grails.plugins.springsecurity.active=com.myorg.util.BeanUtil.getBean(“repositorySettings”).getIsSecured() 使用这种方法会产生

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

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

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

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


使用这种方法会产生错误。是否有一种方法可以实现这一点,并从resources.xml中的bean读取真/假值?这在某种程度上是可能的
resources.xml
resources.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
,则此操作将不起作用。但是,如果它访问的是不是SpringBean的单例,那就好了。

太好了。谢谢,我也买了。我可以从config.groovy外部读取配置。但是当securityConfig.active等于false时,我会得到以下错误:启动筛选器springSecurityFilterChain org.springframework.beans.factory.NoSuchBean定义异常:未定义名为“springSecurityFilterChain”的bean。如果.active等于false,并且是在Config.groovy中设置的,则不会发生此错误。有什么想法吗???