目前,在对与集成Windows身份验证在IIS上运行的Microsoft Project Server 2007实例验证亏损从Java 1.6(U19)客户端启用在Linux,RHEL 5.5中运行。
注意:客户端的工作我的Windows工作站上。
我最初是想实现一个JAX-WS电话,发现我无法检索WSDL因身份验证错误,特别是401.2,随后是500。所以我把它简化为一个Java类:
- 创建一个
Authenticator
,并将其设置有权限的项目服务器站点在广告中使用用户名/密码默认 - 创建
java.net.URL
对象 - 创建
java.net.HttpURLConnection
并调用getInputStream
- 正是在这一点上,其中一个发生故障。
随着HttpURLConnection
调试打开,我可以看到:
- 初始认证失败(401.2)从服务器返回与“协商”,并包括在响应“NTLM”。
- 客户端创建一个NTLM令牌并将其发送回服务器
- 服务器以500个状态码返回
在日志中的Windows服务器上,我可以看到有只为我的再审,并包含在日志文件中没有用户名只是一个“ - ”我相信意思是“无名氏”。
我的想法是,Project Server已不顺心正在传递的NTLM令牌和窒息。 基于这个很多贴子,NTLM(V1和V2)的假设是在Java 1.6的支持。
任何帮助将不胜感激...
更新12年6月20日:缩小问题到了网络安全的本地安全策略设置:对于NTLM SSP的最小会话安全基于(包括RPC)服务器 。 导致Java客户端失败的设置要求NTLMv2的安全性 。 该违背什么是声称对NTLM的支持与JDK 1.6 ..
一些参考:
- Java的HTTP认证
- 博客显示的Java身份验证默认地将Impl