Spring-Boot在网络代理后面

时间:2015-05-11 12:49:19

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

我目前正在实施基于this示例的OpenID身份验证。现在我在网络代理后面开发,因此服务器无法连接到谷歌。 Java代理设置似乎没有任何影响。我还发现了this stackoverflow问题,但我无法弄清楚代码的放置位置。如何为spring boot容器配置代理?

感谢

5 个答案:

答案 0 :(得分:15)

不确定这是否有用,但我现在正在处理Spring Boot教程(https://spring.io/guides/gs/integration/)并遇到类似的网络代理问题。这只是通过提供JVM参数

来解决的
-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080

答案 1 :(得分:7)

只添加两个提供的参数对我不起作用。 这样做的完整清单是:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果使用的是Intellij,请转到此文件C:\ Program Files \ JetBrains \ IntelliJ IDEA Community Edition 2019.2 \ plugins \ maven \ lib \ maven3 \ conf

更改安全设置,以便您进行编辑。

<proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username></username>
      <password></password>
      <host>Enter Your Host Here</host>
      <port>8080</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    <proxy>
      <id>optional2</id>
      <active>true</active>
      <protocol>https</protocol>
      <username></username>
      <password></password>
      <host>Enter Your Host Here</host>
      <port>8080</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

答案 4 :(得分:0)

如果您需要它来调用外部服务,请尝试将代理设置为所使用的客户端(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);