【发布时间】:2015-07-21 23:36:24
【问题描述】:
我目前正在实施基于this 示例的 OpenID 身份验证。现在我在网络代理后面开发,因此服务器无法连接到谷歌。 java代理设置似乎没有任何效果。我还发现了thisstackoverflow 问题,但我不知道将代码放在哪里。如何为我的 Spring Boot 容器配置代理?
谢谢
【问题讨论】:
标签: java spring spring-security proxy spring-boot
我目前正在实施基于this 示例的 OpenID 身份验证。现在我在网络代理后面开发,因此服务器无法连接到谷歌。 java代理设置似乎没有任何效果。我还发现了thisstackoverflow 问题,但我不知道将代码放在哪里。如何为我的 Spring Boot 容器配置代理?
谢谢
【问题讨论】:
标签: java spring spring-security proxy spring-boot
如果您需要它来调用外部服务,请尝试为您正在使用的客户端(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);
【讨论】:
对我来说,application.properties 中的server.use-forwarded-headers=true 解决了这个问题。
【讨论】:
仅添加两个提供的参数对我不起作用。 这样做的完整列表是这样的:
-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 解决了这个问题。我发现你的旗帜无关紧要。但是,知道弹簧靴与其功能相比可能过于复杂,也许对于其他人来说,您的解决方案可能会有所帮助,而不是我的。
不确定这是否有用,但我目前正在学习 Spring Boot 教程 (https://spring.io/guides/gs/integration/) 并遇到了类似的网络代理问题。只需提供 JVM 参数即可解决此问题
-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080
【讨论】: