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

时间:2015-04-07 10:30:54

标签: grails spring-security 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插件才会卸载。

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

1 个答案:

答案 0 :(得分:1)

我现在看到这个问题有点老了,但是我对Melody插件做了类似的事情。在TEST期间安装这个没有价值 - 并且可能妨碍 - 所以我做了以下几点:

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一样。我相信这是由于配置文件背后的构建者。