Grails:有条件地加载 Spring Security LDAP 插件
Posted
技术标签:
【中文标题】Grails:有条件地加载 Spring Security LDAP 插件【英文标题】:Grails: Conditionally Load Spring Security LDAP Plugin 【发布时间】:2015-06-11 22:09:27 【问题描述】:我有一个可以在多个生产环境中运行的应用。在一种环境中,我们希望使用 LDAP 进行身份验证,而在另一种环境中,我们不需要。如果 BuildConfig.groovy 中包含 Spring Security LDAP 插件,则非 LDAP 环境认证失败,因为没有配置 LDAP。
我试过了
environments
devldap
plugins
compile ":spring-security-ldap:2.0-RC2"
但是 LDAP 插件仍然使用非 LDAP 环境构建,如果我不包含 LDAP 配置,则会导致非 LDAP 环境(在本例中为 development
)无法进行身份验证,因为它无法连接到LDAP。
我试过了
grails clean
grails refresh-dependencies
但 LDAP 插件只有在我将其完全注释掉时才会卸载。
如何有条件地在我的构建中包含/排除插件?
【问题讨论】:
【参考方案1】:我看到这个问题现在有点老了,但是我用 Melody 插件做了类似的事情。在测试期间安装它没有任何价值 - 并且可能会妨碍 - 所以我执行以下操作:
plugins
// other plugins ...
if( Environment.current != Environment.TEST )
compile ":grails-melody:1.56.0"
// other plugins ...
所以当我运行“test-app”时,我看到插件“卸载”,然后当我运行“run-app”时,我看到它已安装并且可用。
注意:我最近因为忘记写import grails.util.Environment
而被抓住了。如果你这样做,你会发现Environment.current == [:]
和Environment.TEST
等等。我相信这是由于配置文件背后的构建器。
【讨论】:
谢谢,有机会我会试试的。事实证明,由于其他原因,我后来完全从该项目中删除了 ldap,但很高兴知道这是可能的。再次感谢。以上是关于Grails:有条件地加载 Spring Security LDAP 插件的主要内容,如果未能解决你的问题,请参考以下文章
Groovy:使用 Grails 和 Spring 安全核心插件时出现意外令牌
grails acegi 迁移到 spring-security-core
如何保护使用 Azure 和 Oauth 的 grails API?
grails发布插件错误“找不到加载插件资源[spring.resources]的类”
Grails - grails-spring-security-rest - 无法从 application.yml 加载 jwt 机密