gpt4 book ai didi

RHEL5.5 中的 Java 6 HTTPURLConnection 和 Project Server NTLM 身份验证

转载 作者:行者123 更新时间:2023-12-01 05:16:41 28 4
gpt4 key购买 nike

目前无法对在 IIS 上运行的 Microsoft Project Server 2007 实例进行身份验证,并且从在 Linux、RHEL 5.5 上运行的 Java 1.6(u19) 客户端启用集成 Windows 身份验证。

注意:客户端在我的 Windows 工作站上运行。

我最初尝试实现 JAX-WS 调用,发现由于身份验证错误,我无法检索 WSDL,特别是 401.2,然后是 500。因此我将其简化为 Java 类:

  1. 创建一个身份 validator ,并将其设置为默认身份 validator ,并使用 AD 中有权访问项目服务器站点的用户名/密码
  2. 创建一个 java.net.URL 对象
  3. 创建 java.net.HttpURLConnection 并调用 getInputStream
  4. 正是在此时发生了故障。

打开 HttpURLConnection 调试后,我可以看到:

  1. 服务器返回初始身份验证失败 (401.2),响应中包含“negotiate”和“NTLM”。
  2. 客户端创建 NTLM token 并将其发送回服务器
  3. 服务器返回 500 状态代码

在Windows服务器的日志中,我可以看到日志文件中没有仅包含我请求的用户名,只有一个“-”,我认为这意味着“匿名”。

我的想法是 Project Server 不喜欢正在传递和阻塞的 NTLM token 。根据许多相关帖子,NTLM(v1 和 v2)应该在 Java 1.6 中得到支持。

任何帮助将不胜感激...

2012 年 6 月 20 日更新:将问题范围缩小到网络安全的本地安全策略设置:基于 NTLM SSP(包括 RPC)服务器的最低 session 安全性 。导致 Java 客户端失败的设置是“需要 NTLMv2 安全性”。这与 1.6 JDK 所声称的 NTLM 支持背道而驰。

一些引用:

最佳答案

不久前,当我遇到这个问题时,我最终使用了其他人创建的方案。

http://devsac.blogspot.com/2010/10/supoprt-for-ntlmv2-with-apache.html

当我必须使用 ntlm 从 iis 服务器获取图像文件时,为我工作。使用上面代码的片段..

AuthPolicy.registerAuthScheme(AuthPolicy.NTLM, org.xyz.JCIFS_NTLMScheme.class);
HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new NTCredentials(userName, password, "", strDomain));
GetMethod get = new GetMethod(strImageFile);
get.setDoAuthentication(true);
client.executeMethod(get);

关于RHEL5.5 中的 Java 6 HTTPURLConnection 和 Project Server NTLM 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087721/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com