【问题标题】:HTTP Proxy-Authentication with OpenCMIS client使用 OpenCMIS 客户端的 HTTP 代理身份验证
【发布时间】:2017-10-07 02:49:44
【问题描述】:

我正在使用 BindingType.Browser 开发 OpenCMIS 客户端。创建一个传递 USER、PASSWORD、BROWSER_URL、BINDING_TYPE 和 REPOSITORY_ID 所需参数的会话按预期工作。会话已创建,可以执行进一步的步骤。

现在我想让我的客户端在使用 HTTP 代理访问互联网的机器上运行。要指定要访问的代理,我设置了系统属性 http.proxyUrl 和 http.proxyPort。只要代理不需要身份验证,这也可以工作。

嗯,这就是我现在苦苦挣扎的地方。我在测试代理中激活了身份验证,并在客户端代码中添加了参数 PROXY_USER 和 PROXY_PASSWORD 来创建会话。但这似乎不起作用。我已经调试了使用的 StandardAuthenticationProvider 来验证会发生什么。 HTTP-Header“Proxy-Authenticate”是由身份验证提供程序创建的,但似乎化学框架正在发送没有该标头的请求。在我的代理日志中,收到的请求不包含任何安全标头。

CONNECT my.server.org:443 HTTP/1.1
User-Agent: Java/1.8.0_111
Host: my.server.org
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Proxy-Connection: keep-alive

有什么建议吗?

【问题讨论】:

    标签: proxy opencmis apache-chemistry


    【解决方案1】:

    我在以下帖子中找到了解决方案:Java Web Start: Unable to tunnel through proxy since Java 8 Update 111

    自 Java 8 Update 111 起,默认情况下,在 Oracle Java Runtime 中,通过将“Basic”添加到 jdk.http.auth.tunneling.disabledSchemes 网络属性,已停用基本身份验证方案代理 HTTPS 时。更多信息请参考8u111 Update Release Notes

    要重新激活代理,您需要设置 jdk.http.auth.tunneling.disabledSchemes=""。这可以在启动应用程序时通过 VM Argument 完成

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

    或在运行时通过在应用程序的 main 方法中设置属性

    System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 2018-07-03
      • 2015-03-12
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多