gpt4 book ai didi

Java 代理身份验证(使用 HttpURLConnection)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:06 24 4
gpt4 key购买 nike

我们正在开发将部署在公司客户站点的 Java SE 应用程序。使用 http,应用程序需要不时访问 Internet,并使用 URL.openConnection(java.net.Proxy) 进行访问。这实际上意味着 HttpURLConnection .

我们希望为应用程序用户提供与主流浏览器相同的体验,这意味着如果主流浏览器(IE、Firefox、Chrome)可以通过给定的代理,那么我们的应用程序也应该如此。

我们假设当今时代的企业代理服务器使用某种形式的无提示身份验证(NTLM、SPNEGO)。为此,我们有两个具体问题:

  1. HttpURLConnection 能否通过需要 NTLMv2 身份验证的代理?查看 JDK 源代码似乎支持 NTLM,但我找不到任何关于支持 NTLM 的 version 的文档。我浏览了自 JDK5 以来的所有发行说明。

  2. HttpURLConnection 可以通过使用 SPNEGO-Kerberos 身份验证的代理吗? (无需更改客户的桌面,例如忘记 registry changes )。

我们应用程序的目标桌面平台是 Windows 7(或更高版本)。

使用的 JVM 是 Oracle Java v7 或更高版本。

一般来说,没有空间可以为了我们的应用程序而更改我们客户的桌面。如果这是主要浏览器可以处理而无需更改的情况,则不会发生。所以我们需要评估 Java 能为我们做什么。我们正在为某些通信使用第三方库,而该库又使用标准 JDK 类(例如 URL.openConnection())。我们知道 Apache HttpComponents Client(以前称为 Apache HttpClient)是一个替代方案,如果该解决方案在能够通过方面确实更好,我们愿意删除这个第三方库以便能够替换为 Apache HttpComponents Client一个代理。

最佳答案

第一个,是的。来自 Sun 通过 JNI 调用 SSPI 的自定义代码将仅在 Windows 上对 NTLM 使用react。

其次,没有。这是 MS 限制。除非您编写 SSPI JGSS 桥。你也许可以交换 Authenticator定制一个。

关于Java 代理身份验证(使用 HttpURLConnection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com