java - 使用 NTLM/Kerberos 从 Tomcat 中的 Java Web 应用程序中调用 .NET Web 服务

标签 java web-services wcf tomcat ntlm

我有一个 Java webapp,它包含一个到远程 .NET SOAP web 服务的 HttpClient。到目前为止,一切都很好。 Java webapp 在 Windows Server 上的 Apache Tomcat 中运行并使用服务帐户。

不幸的是,该远程 .net Web 服务使用 NTLM。这answer让我对如何去做有一些了解。但似乎配置仍然需要用户名/密码,而不是利用运行 Tomcat 的服务帐户。此外,我不确定 Java 身份 validator 应该是什么样子(如 here 所示)。

有人试过吗?

更新

一些有趣的链接:

最佳答案

似乎在带有 Tomcat 8.x 的 Java 7/8 上,以下内容足以“透明地”利用 NTLM 身份验证。

import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.methods.HttpUriRequest;

紧随其后

boolean useWindowsAuthentication = true;
HttpUriRequest request;
CloseableHttpClient httpclient;
if (useWindowsAuthentication){
    log.info("Using Windows Authentication");
    httpclient = WinHttpClients.createDefault();    
} else {
    httpclient = HttpClients.createDefault();
}

关于java - 使用 NTLM/Kerberos 从 Tomcat 中的 Java Web 应用程序中调用 .NET Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46584502/

相关文章:

java - ListView 特定项目颜色

java - html 服务器 grizzly+jersey(.jar 存档中的 .html)

java - 来自 Java Web 应用程序的 SharePoint Web 服务使用 CXF 和 Kerberos/NTLM 身份验证

c# - Config 中 System.Object 的 WCF 已知类型

wcf - 从 n 层客户端遍历对象图

java - 如何截取 lwuit 应用程序的屏幕截图,但不在模拟器中

java - 如何使用log4j2和slf4j将日志存储在不同的日志表中?

c# - 从 .Net 2.0 标准 ASMX Web 服务客户端调用 .Net 3.5 WCF 服务

java - 存储过程调用(namedparameterjdbctemplate)

c# - 词匹配算法