我们正在使用Apache Axis客户端与报表服务器进行通信。 Apache客户端使用Apache Http Client进行NTLM身份验证。基于以下帖子
How can I get jcifs to play nicely with apache axis
它看起来只支持原始NTLM。我们的一台机器设置为使用最近的NTLM身份验证。
我想知道这个设置在哪里,我可以重置为使用Apache Http Client支持的原始NTLM身份验证。
答案 0 :(得分:0)
HttpClient不支持NTLM v2因此我使用JCIFS库返回NTLM v1,2,3消息类型,如本网站所述
http://devsac.blogspot.com/2010/10/supoprt-for-ntlmv2-with-apache.html
我刚刚使用上述网站上的JCIFS_NTLMScheme.java文件注册了auth方案,它确实有效!!!!
示例客户端:
List authSchema = new ArrayList();
AuthPolicy.registerAuthScheme(AuthPolicy.NTLM, org.tempuri.JCIFS_NTLMScheme.class);
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
auth.setUsername("");
auth.setPassword("");
auth.setDomain("");
auth.setHost("");
auth.setPort();
List authPrefs = new ArrayList(1);
authPrefs.add(AuthPolicy.NTLM);
auth.setAuthSchemes(authPrefs);
stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);