我试图将spring-security-ldap和spring-security-core封装在一个插件中,提供公司标准的域类、控制器和一些实用程序。此外,我想包括LDAP配置设置。
其目的是创建一个插件,所有公司的应用程序都可以依靠它来快速开发新的应用程序。
在我的BuildConfig.groovy中,我有以下插件:
compile ":spring-security-ldap:1.0.5"
compile ":spring-security-core:1.2.7"然后,在插件描述符doWithSpring闭包中,我具有动态配置设置:
config.grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
config.grails.plugins.springsecurity.ldap.authorities.retrieveGroupRoles = true
config.grails.plugins.springsecurity.ldap.context.server = 'ldap://<myip>'
config.grails.plugins.springsecurity.ldap.context.managerDn = 'CN=<ldap_user>,CN=Users,DC=company,DC=local'
config.grails.plugins.springsecurity.ldap.context.managerPassword = 'secret'
config.grails.plugins.springsecurity.ldap.search.base //etc...现在,我的描述符中还有一个loadBefore可以说:
def loadBefore = ["springSecurityCore"]这在我的本地机器上工作得很好,只有当我有CI软件编译时,它才会失败。
编译11-2013年10月-2013年09:26:30 C:\Users\me.grails\2.1.1\projects\MyApp\plugins\spring-security-ldap-1.0.5\src\java\org\codehaus\groovy\grails\plugins\springsecurity\ldap\DatabaseOnlyLdapAuthoritiesPopulator.java:22:错误:包org.springframework.ldap.core不存在构建11-10月-2013年09:26:30导入org.springframework.ldap.core.DirContextOperations;
是否有任何方法可以在SpringSecurity插件抢占其默认值之前预先设置配置信息?
有什么办法“重新加载”插件配置后,我已经改变了吗?
编辑插件示例现在在Github上
发布于 2013-10-11 16:44:28
我有一个插件可以做同样的事情。我使用平台核心配置我的默认值,声明doWithConfig
def doWithConfig = { config ->
application {
//Spring Security LDAP
grails.plugins.springsecurity.ldap.useRememberMe = false
if(grails.plugins.springsecurity.ldap.active) {
grails.plugins.springsecurity.providerNames = ['ldapAuthProvider', 'anonymousAuthenticationProvider'] // specify this when you want to skip attempting to load from db and only use LDAP
}
}
}我还设置了插件,以便在之后加载,因为我覆盖了一些Spring:
def loadAfter = ['springSecurityCore','springSecurityLdap']https://stackoverflow.com/questions/19321730
复制相似问题