2010-04-12 50 views
2

我擴展了JAAS javax.security.auth.spi.LoginModule,並將其安裝到WAS服務器中。有用;所有登錄都會通過這個新類的代碼,如果它說不讓他們登錄,他們將無法登錄。在WAS上使用JAAS的URLCallback?

根問題:我不希望它過濾登錄管理控制檯(/ ibm/console),但我確實希望它在服務器上過濾其他事物的登錄名。我認爲,通過可用的設置,登錄模塊適用於服務器上安裝的所有設備,包括管理屏幕。

我想通過獲取觸發LoginModule調用的頁面的URL來解決這個問題。如果我使用WebLogic,我會使用URLCallback來獲取URL。有誰知道Websphere Application Server是否具有任何並行功能,或者是否有其他解決方法?

作爲可能有用的附加信息,我無法將JAAS應用於服務器上的單個應用程序;部署描述符在管理控制檯中顯示爲灰色。我只能將新的JAAS JAR模塊應用於整個服務器,這對我來說是個問題。

回答

1

Weblogic通過weblogic.security.auth.callback.URLCallback完成它,WAS通過WSServletRequestCallback完成它。

callbacks[0] = new com.ibm.wsspi.security.auth.callback.WSServletRequestCallback(
       "HttpServletRequest: "); 

(負載回調)從那裏

HttpServletRequest request = ((WSServletRequestCallback)callbacks[3]).getHttpServletRequest(); 
String contextPath = request.getContextPath(); 

轉到。