繁体   English   中英

具有NTLM的Java HTTPClient 4.5,无法获得NTLMv2身份验证

[英]Java HTTPClient 4.5 with NTLM, can't get NTLMv2 authentication

我正在尝试使用NTLMv2对代理进行身份验证。 但是反过来,我得到的是使用NTLMv1进行身份验证。 代理支持两种类型,并且客户端在域之外(但具有必需的凭据)。

客户端正在CentOS 6上运行。代理是Squid,它也在CentOS 6上运行。Windows 2019作为AD。

如果我使用HTTP客户端4.5尝试PoC,我会在Wireshark中看到在协商(消息类型1) FLAG_REQUEST_TARGET未设置FLAG_REQUEST_TARGET 查看NTLMEngineImpl内的HTTP客户端,我看到:

static String getType1Message(final String host, final String domain) throws NTLMEngineException {
        // For compatibility reason do not include domain and host in type 1 message
        //return new Type1Message(domain, host).getResponse();
        return TYPE_1_MESSAGE.getResponse();
    }

String getResponse()我看不到任何地方设置的标志。

从装有IE的Windows计算机上,如果我执行请求,则在Wireshark中看到具有相同代理集的FLAG_REQUEST_TARGET集,并在协商后使用NTLMv2结束。

那么,有没有办法让我使用HTTPClient 4.5设置此标志?

我参加了JCIFS。

尽管我也有NTLEngineImpl的包装器,所以,实现NTLEngine我只需要覆盖TYPE1消息(并从真实的Imp中获取代码,但在上面添加了一个新标志)。

无论如何,正如我所说,我最终去了另一个图书馆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM