首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:自Java 8更新111以来无法通过代理进行隧道

:自Java 8更新111以来无法通过代理进行隧道
EN

Stack Overflow用户
提问于 2017-01-23 12:29:23
回答 4查看 34.8K关注 0票数 21

自从Java8Update111之后,我们的一些客户再也不能运行我们的Java客户端了。他们得到:

java.io.IOException:无法通过代理进行隧道。代理返回"HTTP/1.1 407所需代理身份验证“

看起来这跟这个变化有关

现在,在为HTTPS设置隧道时需要基本身份验证的代理将不再默认成功。如果需要,可以通过从jdk.http.auth.tunneling.disabledSchemes网络属性中删除Basic,或者通过在命令行上将同名的系统属性设置为"“(空)来重新激活此身份验证方案。

如果客户不愿意改变他们的代理认证方法,有什么办法吗?

注意:<property name="jdk.http.auth.tunneling.disabledSchemes" value=""/>添加到JNLP的<resources>中没有任何效果。这是因为只有少数属性是这样支持的(在此页底部有一个列表)。"jdk.http.auth.tunneling.disabledSchemes“不在其中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-03 08:29:48

我发现有一种方法,但不掌握在开发人员的手中:用户可以添加

代码语言:javascript
复制
-Djdk.http.auth.tunneling.disabledSchemes=""

对于Java 8在Java控制面板→Java→视图.→运行时参数

中的→桌面设置→运行时参数

票数 21
EN

Stack Overflow用户

发布于 2017-04-21 14:45:05

除了mbee的答案之外,还可以在jre的net.properties文件中配置它:

C:\Program Files (x86)\Java\jre1.8.0_131\lib\net.properties

目前,最后第100行需要注释掉:

在此之前:

代码语言:javascript
复制
 #jdk.http.auth.proxying.disabledSchemes=
 jdk.http.auth.tunneling.disabledSchemes=Basic

之后:

代码语言:javascript
复制
 #jdk.http.auth.proxying.disabledSchemes=
 #jdk.http.auth.tunneling.disabledSchemes=Basic

请注意,这两个答案都需要在Java之后重复,尽管Java自动更新被基本Internet代理身份验证禁用。

票数 8
EN

Stack Overflow用户

发布于 2017-05-09 18:17:47

如果需要在运行时执行此操作,则可以通过添加以下方法设置jdk.http.auth.proxying.disabledSchemes属性的值

代码语言:javascript
复制
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");

应用程序的主要方法。

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

https://stackoverflow.com/questions/41806422

复制
相关文章

相似问题

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