Java:寻找一个Web套接字客户端来通过代理,这是启用NTLM(协商)

时间:2018-03-02 00:22:08

标签: proxy glassfish jetty java-websocket tyrus

我一直在寻找一个Web套接字客户端实现几天来通过代理,它是使用NTLM Negotiate协议设置的。

我在下面的实施中验证了没有成功:

1. Glassfish's Tyrus client:
    Tried both client managers below,
    a. org.glassfish.tyrus.client.ClientManager ("org.glassfish.tyrus.bundles:tyrus-standalone-client:1.13")
    b. org.glassfish.tyrus.container.jdk.client.JdkClientContainer ("org.glassfish.tyrus:tyrus-container-jdk-client:1.13.1")

2. Eclipse Tyrus client:
   According to below issue, they does not support it yet.
   https://github.com/eclipse-ee4j/tyrus/issues/381

3. Apache Tomcat client:
   Verified Spring web socket client with underlying tomcat implementation.
   org.apache.tomcat.websocket.WsWebSocketContainer ("org.apache.tomcat.embed:tomcat-embed-websocket:8.5.11")

4. Jetty:
   Verified with 'org.eclipse.jetty.websocket:websocket-client:9.4.8.v20171121'.
   Found (correct me if I am wrong here) that they only support 'BASIC' and 'DIGEST'.

注意:以上大多数实现都支持认证方案'BASIC',在某些情况下支持'DIGEST'。

代理设置:

我们使用NTLM(Negotiate)进行Squid代理设置,将Active Directory作为域控制器。 我们的客户有一个蓝色外套代理,运行类似的设置。

客户端:

我们在Windows系统上运行Java客户端(桌面应用程序),并通过代理连接到各种其他服务器(在HTTP 1.1和WS / WSS上)。

NTLM谈判:

客户端需要接受来自代理服务器的身份验证质询,并使用域和密码哈希(从Windows获取)登录用户名到代理服务器,代理服务器依次验证域控制器(活动目录)

Java的HttplURLConnection和Apache Http客户端实现在连接到所有Http请求的代理时已经支持此机制。我需要找到一个Web套接字客户端实现来执行类似的机制来支持我的Java客户端对出站流量做出的所有请求(Http和WS / WSS)。

我的要求摘要:

请告诉我,如果有人已经遇到这种需求并且知道一个Web套接字实现,它已经支持在Windows系统上连接到基于NTLM(Negotiate)的代理。

如果类似的问题已经存在并得到解答,请指出。

0 个答案:

没有答案