Grails 用于预打包SpringSecurity配置的自定义插件

Grails 用于预打包SpringSecurity配置的自定义插件,grails,spring-security,grails-plugin,Grails,Spring Security,Grails Plugin,我试图将SpringSecurityLDAP和SpringSecurityCore打包在一个插件中,该插件提供公司标准的域类、控制器和一些实用程序。此外,我还想包括LDAP配置设置 其目的是创建一个所有公司应用程序都可以依赖的插件,以快速开发新的应用程序 在我的BuildConfig.groovy中,我有以下插件: compile ":spring-security-ldap:1.0.5" compile ":spring-security-core:1.2.7" 然后在我的插件描述符doWi

我试图将SpringSecurityLDAP和SpringSecurityCore打包在一个插件中,该插件提供公司标准的域类、控制器和一些实用程序。此外,我还想包括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...
这在我的本地机器上非常有效,只有当我编译CI软件时,它才会失败

2013年10月11日建造 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\databaseOnlyDapAuthoritiesPopulator.java:22: 错误:包org.springframework.ldap.core不存在 构建2013年10月11日09:26:30导入 org.springframework.ldap.core.DirContextOperations

在SpringSecurity插件使用默认值抓取之前,有没有办法预设配置信息

在我更改插件配置后,有没有办法“重新加载”它们

编辑
插件的例子现在在

我有一个插件,它做完全相同的事情。我使用配置默认值,声明:

我还将插件设置为在之后加载,因为我覆盖了一些SpringBean:

def loadAfter = ['springSecurityCore','springSecurityLdap']

我认为在2.1.1中删除了
doWithConfig
。但是你的建议可能适用于
doWithSpring
@johngitta doWithConfig来自插件平台核心,你检查了我的链接了吗?嗯,你能共享应用程序和插件构建配置吗?我在下载你的插件时抛出了一个示例项目,使用grails package plugin&grails maven安装,并将其声明为新应用程序的依赖项。它成功地完成了。你还做了些什么?
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
    }
  }         
}
def loadAfter = ['springSecurityCore','springSecurityLdap']