Grails:有条件地加载Spring Security LDAP插件



我有一个在多个生产环境中运行的应用程序。在一种环境中,我们希望使用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插件只有在我完全注释掉的情况下才会卸载。

如何在构建中有条件地包含/排除插件?

我觉得这个问题现在有点老了,但我对Melody插件也做了类似的事情。在测试期间安装这个没有任何价值,而且可能会成为障碍,所以我做了以下操作:

plugins {
    // other plugins ...
    if( Environment.current != Environment.TEST )
        compile ":grails-melody:1.56.0"
    // other plugins ...
}

所以当我运行"测试应用程序"时,我会看到插件被"卸载",然后当我运行应用程序时,我看到它被安装并可用。

注意:我最近忘记做import grails.util.Environment。如果你这样做,你会发现Environment.current == [:]Environment.TEST等。我相信这是由于配置文件后面的构建器造成的。

最新更新