【问题标题】:Spring-Boot behind a network proxy网络代理后面的 Spring-Boot
【发布时间】:2015-07-21 23:36:24
【问题描述】:

我目前正在实施基于this 示例的 OpenID 身份验证。现在我在网络代理后面开发,因此服务器无法连接到谷歌。 java代理设置似乎没有任何效果。我还发现了thisstackoverflow 问题,但我不知道将代码放在哪里。如何为我的 Spring Boot 容器配置代理?

谢谢

【问题讨论】:

    标签: java spring spring-security proxy spring-boot


    【解决方案1】:

    如果您需要它来调用外部服务,请尝试为您正在使用的客户端(RestTemplate 等)设置代理,如下所示:

    HttpComponentsClientHttpRequestFactory requestFactory = new 
    HttpComponentsClientHttpRequestFactory();
    DefaultHttpClient httpClient = (DefaultHttpClient) requestFactory.getHttpClient();
    HttpHost proxy = new HttpHost("proxtserver", port);
    httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
    restTemplate.setRequestFactory(requestFactory);
    

    【讨论】:

      【解决方案2】:

      对我来说,application.properties 中的server.use-forwarded-headers=true 解决了这个问题。

      【讨论】:

      • 但是这条线是作为反向代理使用的,而不是外部代理连接。
      • @mafiu Spring boot 应用程序实际上从不反向代理,通常是 apache 或 nginx 代理它们,这个 apache/nginx 是反向代理。我不明白你的评论。
      • 如果app无法访问openid服务器,那么openid auth是不可能的。但通常它可以。也许它需要为此使用传出代理服务器,有 application.properties 设置。但这不是难事。让它接受 rev 代​​理提供给它的 X-Forward-* http 标头是一件困难的事情(在 SB 1 中)。
      【解决方案3】:

      仅添加两个提供的参数对我不起作用。 这样做的完整列表是这样的:

      -Dhttp.proxyHost=somesite.com -Dhttp.proxyPort=4321 
      -Dhttps.proxyHost=somesite.com -Dhttps.proxyPort=4321 -Dhttps.proxySet=true 
      -Dhttp.proxySet=true
      

      【讨论】:

      • 我的零效应。
      • server.use-forwarded-headers=true in application.properties 解决了这个问题。我发现你的旗帜无关紧要。但是,知道弹簧靴与其功能相比可能过于复杂,也许对于其他人来说,您的解决方案可能会有所帮助,而不是我的。
      【解决方案4】:

      不确定这是否有用,但我目前正在学习 Spring Boot 教程 (https://spring.io/guides/gs/integration/) 并遇到了类似的网络代理问题。只需提供 JVM 参数即可解决此问题

      -Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080
      

      【讨论】:

      • 你说得对,我在我的 IDE 中添加了这个和 https 参数,它工作正常。巧合的是我昨天想到了这个,但我不记得问过这个问题。
      • 完美!为我工作
      • 如果需要认证:-Dhttp.proxyUser= -Dhttp.proxyPassword= 并且对于 https 认证:-Dhttps.proxyHost= -Dhttp.proxyPort=
      • 有没有办法把它放到属性文件中?
      猜你喜欢
      • 2014-10-16
      • 2022-01-19
      • 2019-05-01
      • 2017-03-22
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 2019-05-15
      • 2018-12-03
      相关资源
      最近更新 更多