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