Java 代理服务器的Axis2 NTLM身份验证

Java 代理服务器的Axis2 NTLM身份验证,java,authentication,proxy,axis2,ntlm,Java,Authentication,Proxy,Axis2,Ntlm,在需要NTLM身份验证的http代理服务器上验证Axis2(1.4版)客户端的正确方法是什么 我正在使用以下代码提供代理凭据,但身份验证仍然失败(请参阅最后的详细信息): 使用完全相同的凭据,webbrowser(如Firefox)能够通过代理服务器访问,因此我假设代理服务器设置正确。但是,对于Axis2客户端,身份验证失败(HTTP状态代码为“需要407代理身份验证”) 进一步详情: 我使用网络嗅探器比较了firefox和我的客户端的网络流量。主要的区别似乎是,axis2客户端正在为ntlm质

在需要NTLM身份验证的http代理服务器上验证Axis2(1.4版)客户端的正确方法是什么

我正在使用以下代码提供代理凭据,但身份验证仍然失败(请参阅最后的详细信息):

使用完全相同的凭据,webbrowser(如Firefox)能够通过代理服务器访问,因此我假设代理服务器设置正确。但是,对于Axis2客户端,身份验证失败(HTTP状态代码为“需要407代理身份验证”)

进一步详情: 我使用网络嗅探器比较了firefox和我的客户端的网络流量。主要的区别似乎是,axis2客户端正在为ntlm质询发送一个空响应


是否有人使用NTLM在http代理服务器上成功进行身份验证?您能给我一个代码示例吗?

我无法解决此问题(轴2)。我不想把这归咎于Axis2。也许我做错了什么事,但即使经过了几个小时的尝试、调试和阅读文档,我还是无法理解

但是当我没有选择的时候,我不得不寻找其他的选择。另一种选择是以替代SOAP框架的形式出现的。有相当多的用于java的SOAP框架。我了解Axis2、CXF和JAX-WS

我现在使用JAX-WS代替Axis2。更换框架是一个直截了当的过程。替换的一个很好的副作用是,我去掉了Axis2附带的巨大依赖树。JAX-WS是J6EE的一部分,因此不需要导入其他依赖项

此时,我只在客户端进行了替换。服务器仍然使用Axis2。到目前为止,这种组合非常有效,但我仍计划最终在服务器端替换Axis2

总而言之:如果不使用Axis2的特殊功能,我认为JAX-WS是更好的选择。

请参见
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);