2015-04-07 48 views
0

我有一個應用程序可以在多個生產環境中運行。在一個環境中,我們希望使用LDAP進行身份驗證,而在另一個環境中,我們不需要。如果Spring Security LDAP插件包含在BuildConfig.groovy中,則非LDAP環境將無法進行身份驗證,因爲未配置LDAP。Grails:有條件加載Spring Security LDAP插件

我試圖

environments { 
    devldap { 
     plugins { 
      compile ":spring-security-ldap:2.0-RC2" 
     } 
    } 
} 

但LDAP插件仍然與非LDAP環境構建,並導致非LDAP環境(在這種情況下development)失敗,如果我不包括LDAP認證因爲它無法連接到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 ... 
} 

所以,當我運行「測試應用程序」我看到該插件「卸載」,然後當我做'run-app'我看到它已安裝並且可用。

注意:我最近被抓出來忘了也做了import grails.util.Environment。如果你這樣做,你會發現Environment.current == [:]Environment.TEST等我相信這是由於配置文件後面的生成器。

+0

謝謝,我會試試看,當我有機會。事實證明,由於其他原因,我最終完全從該項目中刪除了ldap,但很高興知道這是可能的。再次感謝。 – 10GritSandpaper

相關問題