首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java身份验证(使用HttpURLConnection)

Java身份验证(使用HttpURLConnection)
EN

Stack Overflow用户
提问于 2014-06-15 09:15:07
回答 1查看 2.4K关注 0票数 3

我们正在开发一个Java应用程序,它将部署在企业客户站点上。使用http,应用程序需要不时访问互联网,并使用URL.openConnection(java.net.Proxy),这实际上意味着HttpURLConnection

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

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

  1. HttpURLConnection能否通过需要NTLMv2身份验证的代理?纵观JDK源代码,似乎有对NTLM的支持,但我在任何地方都找不到任何关于NTLM支持哪个版本的文档。自JDK5以来,我已经浏览了所有的发行说明。
  2. HttpURLConnection能否通过使用SPNEGO身份验证的代理?(不需要更改客户的桌面,例如,忘记注册表更改)。

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

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

一般来说,为了我们的应用程序,对客户的桌面进行更改是没有余地的。如果这是一个主要浏览器可以在不进行更改的情况下处理的情况,则不会发生这种情况。因此,我们需要评估Java可以为我们做些什么。我们正在为一些通信使用第三方库,而这个库又使用标准的JDK类(例如URL.openConnection())。我们知道Apache HttpComponents客户端(以前的Apache HttpClient)是另一种选择,如果该解决方案能够更好地通过代理传递,我们愿意使用这个第三方库来替换Apache HttpComponents客户端。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-16 21:12:32

第一个,是的。Sun通过JNI调用SSPI的自定义代码将只在Windows上对NTLM作出反应。

第二,不。这是MS的解吸剂。除非你编码了一个SSPI JGSS桥。您也许可以将验证器替换为自定义的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24228159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档