2011-11-01 41 views
1

我有一個Glassfish 3.1.1的工作自定義登錄領域(由第三方提供)。我已經通過管理控制檯在工作站上的單個Glassfish實例上成功部署和配置了它,方法是將loginmodule jar放入domains/domainname/lib文件夾中。與webapp和一切工作。通過DAS在獨立Glassfish上配置自定義登錄領域和模塊

現在我試圖部署應用程序到一個更復雜的設置。考慮以下三個服務器:

DAS: Admin server instance with domain 

FRONT1: Standalone node instance configured through DAS 

SERVICE1: Standalone node instance configured through DAS 

我已經下降LoginModule的罐子爲節點/ FRONT1/lib文件夾(FRONT1服務器上)。對於名爲front1_config和service1_config的DAS上的每個實例,我都有單獨的配置。我試圖通過配置添加與管理控制檯的新境界 - > front1_config - >安全 - >國度,但我得到了以下錯誤:

網站:

Creation of Authrealm custom-realm failed. java.lang.NullPointerException 

DAS服務器日誌:

[#|2011-11-01T14:22:18.258+0200|SEVERE|glassfish3.1.1|org.glassfish.admingui|_ThreadID=23;_ThreadName=Thread-2;|RestResponse.getResponse() gives FAILURE. endpoint = 'https://localhost:4848/management/domain/configs/config/front1-config/security-service/auth-realm'; attrs = '{classname=com.mycompany.loginmodule.MyLoginRealm, name=custom-card, target=front1-config, property=}'|#] 

我懷疑這可能是一個與loginmodule.jar的位置有關的問題。或者可能是從loginmodule本身拋出NullPointerException?我嘗試了很多方法,甚至將FRONT1和DAS上的jar複製到glassfish/lib中,但似乎沒有任何效果。

我在我的智慧結束在這裏。

編輯:我發現了更多一點。我似乎已將loginmodule jar複製到DAS服務器的domain/lib。當我刪除從那裏LoginModule的瓶子,空指針異常並沒有出現,我只是得到一個ClassNotFoundException:(?如果不是全部)

Creation of Authrealm custom-realm failed. 
com.sun.enterprise.security.auth.realm.BadRealmException: 
java.lang.ClassNotFoundException: 
com.mycompany.loginmodule.MyLoginRealm not found by org.glassfish.security [117] 
+0

我居然有這個地方。我沒有可能確認它是否有效。我所做的是將工作單域domain.xml中的realm配置複製粘貼到FRONT1節點的domain.xml配置,然後將loginmodule jar複製到DAS域的lib中。在此之後,FRONT1日誌顯示該領域已配置好。我會盡力確認它稍後有效並提交信息。不幸的是,我不知道是什麼導致了最初的問題。 –

回答

0

Glassfish的3.x中有默認的功能複製一些從DAS服務器的配置域/域名/文件夾到節點服務器。我將loginmodule jar和login.conf配置添加到DAS服務器的domain/domainname/lib和domain/domainname/config,並且在從DAS管理控制檯重新啓動FRONT1實例後,將正確的loginmodule jar和login.conf上載到實例服務器。現在loginmodule按預期工作。

我還不確定這是絕對正確還是最安全的方式來實現這種設置,但它似乎工作。