簡體   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