簡體   English   中英

代理服務器的Axis2 NTLM身份驗證

[英]Axis2 NTLM Authentication for Proxy-Server

在需要NTLM身份驗證的http代理服務器上對Axis2(版本1.4)客戶端進行身份驗證的正確方法是什么?

我正在使用以下代碼來提供代理憑據,但是身份驗證仍然失敗(請參閱最后的詳細信息):

Options options = serviceStub._getServiceClient().getOptions();
options.setProperty(HTTPConstants.CHUNKED, false);
options.setProperty(HTTPConstants.PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10);

ProxyProperties proxyProperties = new ProxyProperties();
proxyProperties.setProxyName("123.123.123.123");
proxyProperties.setProxyPort(8080);
proxyProperties.setUserName("myUser@www.example.org");
proxyProperties.setPassWord("1234");
proxyProperties.setDomain("");
options.setProperty(HTTPConstants.PROXY, proxyProperties);

使用完全相同的憑據,諸如Firefox之類的Web瀏覽器就可以通過代理,因此我認為代理服務器已正確設置。 但是,對於Axis2客戶端,身份驗證失敗(HTTP狀態代碼為“ 407代理身份驗證必需”)。

進一步的細節:我使用網絡嗅探器比較了來自firefox和客戶端的網絡流量。 主要區別似乎是,axis2客戶端正在為ntlm質詢發送空響應。

是否有人使用NTLM在http代理服務器上成功通過身份驗證? 能給我一個代碼示例嗎?

我無法解決此問題(使用Axis 2)。 不想將此歸咎於Axis2艱難。 也許我做了錯事,但即使經過許多小時的嘗試,調試和閱讀文檔也無法弄清楚。

但是,當我用盡所有選項時,我不得不尋找其他選項。 此其他選項以替代SOAP框架的形式出現。 存在許多用於Java的SOAP框架。 我了解Axis2,CXF和JAX-WS。

我現在使用JAX-WS代替Axis2。 替換框架是一個簡單的過程。 替換的一個很好的副作用是,我擺脫了Axis2附帶的巨大依賴樹。 JAX-WS是J6EE的一部分,因此不需要導入其他依賴項。

目前,我僅在客戶端進行替換。 服務器仍使用Axis2。 到目前為止,這種組合效果很好,但是我仍然計划最終也替換服務器端的Axis2。

總而言之:如果您不使用Axis2的特殊功能,我認為JAX-WS是更好的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM