首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义插件到包前的SpringSecurity配置

自定义插件到包前的SpringSecurity配置
EN

Stack Overflow用户
提问于 2013-10-11 15:22:26
回答 1查看 324关注 0票数 0

我试图将spring-security-ldap和spring-security-core封装在一个插件中,提供公司标准的域类、控制器和一些实用程序。此外,我想包括LDAP配置设置。

其目的是创建一个插件,所有公司的应用程序都可以依靠它来快速开发新的应用程序。

在我的BuildConfig.groovy中,我有以下插件:

代码语言:javascript
复制
compile ":spring-security-ldap:1.0.5"
compile ":spring-security-core:1.2.7"

然后,在插件描述符doWithSpring闭包中,我具有动态配置设置:

代码语言:javascript
复制
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可以说:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 16:44:28

我有一个插件可以做同样的事情。我使用平台核心配置我的默认值,声明doWithConfig

代码语言:javascript
复制
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:

代码语言:javascript
复制
def loadAfter = ['springSecurityCore','springSecurityLdap']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19321730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档