Spring - 通过代理指导所有出站流量

时间:2014-07-17 21:36:06

标签: java spring web-services spring-mvc proxy

我有一个Spring应用程序使用spring-ws来处理我在本地开发机器上运行的所有SOAP消息。当我部署到需要使用代理服务器到达外部世界的任何流量时,我似乎陷入困境。我的印象是我可以设置一些JVM参数,例如

-Dhttp.proxyHost=proxyhostURL 
-Dhttp.proxyPort=proxyPortNumber 
-Dhttp.proxyUser=someUserName 
-Dhttp.proxyPassword=somePassword

但是类文件似乎没有遵守proxyUser和proxyPassword参数。

我甚至更进了一步,在java代码中实现了它:

System.getProperties().put("http.proxyHost", "someProxyURL");
System.getProperties().put("http.proxyPort", "someProxyPort");
System.getProperties().put("http.proxyUser", "someUserName");
System.getProperties().put("http.proxyPassword", "somePassword");

但仍然没有运气。

然后我尝试使用java.net.Authenticator来设置用户名和密码,但这似乎不起作用:

Authenticator.setDefault(
                  new Authenticator() {
                    public PasswordAuthentication getPasswordAuthentication() {
                      return new PasswordAuthentication(authUser, authPassword.toCharArray());
                    }
                  }
                );

有没有人有任何建议如何使用Java6,Tomcat 6和Spring 3(使用spring-ws)通过代理路由所有流量

1 个答案:

答案 0 :(得分:1)

事实证明它没有兑现传入的JVM HTTP参数,因为我的Web服务正在使用HTTPS。将标志设置为以下内容后:

-Dhttps.proxyHost=proxyhostURL 
-Dhttps.proxyPort=proxyPortNumber 
-Dhttps.proxyUser=someUserName 
-Dhttps.proxyPassword=somePassword

一切都按计划进行。