我们使用 Apache Axis 客户端与报表服务器通信。 Apache Client 使用 Apache Http Client 进行 NTLM 身份验证。基于以下帖子
How can I get jcifs to play nicely with apache axis
看起来它只支持原始的 NTLM。我们的一台机器设置为使用最近的 NTLM 身份验证。
我想知道这个设置在哪里,我可以在其中重置以使用 Apache Http 客户端支持的原始 NTLM 身份验证。
最佳答案
HttpClient 不支持 NTLM v2,因此我使用 JCIFS 库返回 NTLM v1、2、3 消息类型,如本网站所述
http://devsac.blogspot.com/2010/10/supoprt-for-ntlmv2-with-apache.html
我只是使用上述网站的 JCIFS_NTLMScheme.java 文件来注册身份验证方案并且它有效!!!!
示例客户端:
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);
关于java - 使用 Apache Http Client 支持的原始 NTLM 身份验证的 Windows 系统设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7162249/