如何知道Web服务调用中的连接是否通过HTTPS?

时间:2013-08-19 05:42:52

标签: java web-services

使用Jetty 7.0.2。该服务监听80和443端口。在一个特殊的API中,我们需要连接到另一个服务器,该方案由来电确定:如果来电是HTTP,那么我们将通过HTTP到达另一个服务器;如果来电是HTTPS,那么我们将通过HTTPS到达其他服务器。

Web服务可以在其中注入WebServiceContext对象,我们曾经使用过:

MessageContext ctx = (WebServiceContext)wsContext.getMessageContext();
String requestUrl = ctx.get("com.sun.xml.ws.transport.http.servlet.requestURL");

然后我们解析网址,知道它是否为https / http。

但是,当我们使用Jetty时,我们发现不会注入requestURL。还有另一种解决方法吗?

1 个答案:

答案 0 :(得分:1)

我不太确定你正在运行的码头和网络服务。但如果它在内部使用servlet,那么我相信HttpSerlvetRequest.isSecure()可以帮助你。

  

boolean isSecure()

     

返回一个布尔值,指示此请求是否是使用   安全通道,例如HTTPS。