Java Web Start:自 Java 8 Update 111 以来无法通过代理建立隧道

新手上路,请多包涵

自 Java 8 Update 111 以来,我们的一些客户无法再运行我们的 Java Web Start 客户端。他们得到:

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”不在其中。

原文由 Marcus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 638
2 个回答

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

-Djdk.http.auth.tunneling.disabledSchemes=""

对于 Java 8,在 Java 控制面板 → Java → 查看… → 运行时参数

对于 Java 9,在 Java 控制面板 → 桌面设置 → 运行时参数

原文由 Marcus 发布,翻译遵循 CC BY-SA 3.0 许可协议

除了 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 代理身份验证停用。

原文由 jan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题