gpt4 book ai didi

java - 用于 IIS 集成 Windows 身份验证 (NTLM) 的 JAX-WS 客户端

转载 作者:行者123 更新时间:2023-11-30 01:39:51 25 4
gpt4 key购买 nike

最近,我正在开发一个项目,该项目需要使用 Java 构建一个在 JAX-WS 引擎上运行的 Web 服务客户端,以便与受集成 Windows 身份验证(也称为 NTLM 协议(protocol))保护的 .NET Web 服务通信

我在网上搜索了一下。这似乎是一个众所周知的问题,但目前还没有人有好的解决方案。

以前有人这样做过吗?

如有任何建议,我们将不胜感激。

最佳答案

我们使用的是 java 6 中内置的 JAX-WS,并在 Windows XP 和 Windows 2003 Server 上运行客户端。服务器是 Windows 2003 Server 上的 IIS 7。

我惊讶地发现集成身份验证可以开箱即用。未提供配置。我在HTTP层打开了跟踪日志记录,发现正在使用NTLM身份验证。不确定如果仅使用协商身份验证并关闭 NTLM 是否会起作用。

基本上,答案是:它确实有效。

测试:

package url.auth;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.IOUtils;

public class DownloadUrl {
public static void main(String[] args) {

try {
URL url = new URL("http://myserver/url/that/requires/authentication");
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
Map<String, List<String>> headers = conn.getHeaderFields();
for(String header : headers.keySet()) {
System.out.println(header + ": " + headers.get(header));
}
System.out.println("");
System.out.println(IOUtils.toString(is));
} catch (IOException e) {
e.printStackTrace();
}
}
}

关于java - 用于 IIS 集成 Windows 身份验证 (NTLM) 的 JAX-WS 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1050627/

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