/ / TomcatのJava WebアプリケーションからNTLM / Kerberos - java、web-services、wcf、tomcat、ntlmを使用して.NET Webサービスを呼び出す

TomcatのJava WebアプリケーションからNTLM / Kerberos(Java、Webサービス、wcf、tomcat、ntlm)で.NET Webサービスを呼び出す

私はリモートのSOAP SOAP WebサービスへのHttpClientを含むJava Webアプリケーションを持っています。ここまでは順調ですね。 Java Webアプリケーションは、Windows Server上のApache Tomcat内で実行され、サービスアカウントを使用します。

残念ながら、リモートの.net WebサービスはNTLMを使用します。この 回答 それをどうやって行うのかについていくつかの洞察を与えてくれます。 しかし、Tomcatが稼働しているサービスアカウントを利用するのではなく、設定を行うにはユーザー名とパスワードが必要になります。また、私はJavaのオーセンティケータがどのように見えるべきかわからない ここに)。

誰もこれを試みたことがありますか?

更新

いくつかの興味深いリンク:

  • 異なる 認証スキーム Apache HTTPコンポーネントでサポート
  • サンプル NTLMv2認証 - 私はまだそれをテストしています。

回答:

回答№1は0

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();
}