[英]Axis2 user authentication
由於使Web服務盡可能保持無狀態的雄心,我遇到了一個問題。 我最近開始使用Axis2,並試圖找到可行的身份驗證解決方案。 身份驗證是指用戶名/密碼。 我已經將SSL與WS-Policy結合使用來保護過程調用。
但是,我發現與Rampart 1.6.2捆綁在一起的一些示例已經過時,尤其是名為“ sample-tomcat”及其WSPasswordCallback處理程序(在此處找到)的策略示例。 WSPasswordCallback.USERNAME_TOKEN_UNKNOWN
在1.6中已棄用,並且WSPasswordCallback.getPassword()
始終返回null,即使在消息的安全標頭中的UsernameToken元素中提供了密碼也是如此。
所以。 我不確定從何處獲取每封郵件的用戶名/密碼。 我正在研究以下兩個選項:
用執行用戶名/密碼驗證的處理程序編寫模塊。
放棄無狀態,並編寫一個返回所有其他服務所需的令牌的登錄服務。
還有其他選擇嗎?
實際上,根據WSS4J開發人員Colm O Heigeartaigh的說法,在更改為使用驗證器接口之前,這很奇怪,請參閱他的第一篇 , 第二篇和第三篇關於WSS4J 1.6中新的驗證器設計的博客文章。
WSPasswordCallback
不應處理身份驗證,它被認為是不良的設計並避免了關注點分離,因此,他們(WSS4J開發人員)重寫了WSS4J的這一部分。
但是,據我所知,Rampart開發團隊尚未實現開發人員應用自定義驗證器的方法,也沒有實現NoOpValidator之類的WSS4J驗證器的NoOpValidator
-即使它在WSS4J中可用。 他們的(Rampart的)項目JIRA中注冊了一個問題( 請在此處閱讀 ),但是該問題的優先級較低,並且截至目前為止。 該問題未包含在下一個次要版本(1.6.3)或主要版本(1.7.0)中。
因此,按照我自己的喜好,您將必須執行以下三件事之一:
如果還有其他解決方案/解決方法,請隨時評論/糾正我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.