自从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“不在其中。
发布于 2017-02-03 08:29:48
我发现有一种方法,但不掌握在开发人员的手中:用户可以添加
-Djdk.http.auth.tunneling.disabledSchemes=""对于Java 8在Java控制面板→Java→视图.→运行时参数
中的→桌面设置→运行时参数
发布于 2017-04-21 14:45:05
除了mbee的答案之外,还可以在jre的net.properties文件中配置它:
C:\Program Files (x86)\Java\jre1.8.0_131\lib\net.properties
目前,最后第100行需要注释掉:
在此之前:
#jdk.http.auth.proxying.disabledSchemes=
jdk.http.auth.tunneling.disabledSchemes=Basic之后:
#jdk.http.auth.proxying.disabledSchemes=
#jdk.http.auth.tunneling.disabledSchemes=Basic请注意,这两个答案都需要在Java之后重复,尽管Java自动更新被基本Internet代理身份验证禁用。
发布于 2017-05-09 18:17:47
如果需要在运行时执行此操作,则可以通过添加以下方法设置jdk.http.auth.proxying.disabledSchemes属性的值
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");应用程序的主要方法。
https://stackoverflow.com/questions/41806422
复制相似问题