2013-02-07 54 views
3

我有運行在Windows上的Websphere Application Server 7.0版。 我創建了一個實現javax.security.auth.spi.LoginModule接口的JAAS登錄模塊,並創建了一個使用此登錄模塊(位於Mapping-Configuration別名下)的數據源。由於此數據源應該從登錄模塊獲取連接的憑據,因此數據源上沒有配置認證別名。Websphere - 使用直接JNDI查找和JAAS登錄模塊

我想在我的應用程序上使用這個數據源,但我的應用程序使用數據源的直接JNDI查找。根據this文章,當使用直接JNDI查找時,websphere會創建一個使用res-auth = application配置的默認資源引用。由於res-auth是應用程序,我的登錄模塊從未被調用,但由於「組件管理的身份驗證別名」爲空,我得到登錄拒絕錯誤。 我試圖用res-auth = Container手動創建一個資源引用,但它沒有幫助。

有什麼方法可以將默認res-auth更改爲Container? 當res-auth設置爲Application時,有沒有辦法讓登錄模塊工作?

謝謝。

+0

[This](http://pic.dhe.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.express.doc/info/exp/ae/rdat_jnditips.html)似乎是與您所鏈接的文章相同的文章,但措辭上的一點變化似乎使其更易於理解,至少對我而言。我認爲你應該使用_indirect jndi name_而不是直接用jdbc/xxx名字查找。引用,_retain java:comp/env前綴。間接名稱使與應用程序關聯的任何資源引用數據可用於連接管理運行時,以更好地管理基於res-auth的資源... ... –

回答

0

轉到您的數據源>>安全設置>>選擇JAAS登錄模塊兩個Component-managed authentication alias & Container-managed authentication alias

問候,

0

U可以在web.xml文件中更改RES-AUTH的容器,所以它將使用容器管理的認證別名。