gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:29 26 4
gpt4 key购买 nike

使用 Jetty 7.0.2。该服务同时监听 80 和 443 端口。在一个特殊的API中,我们需要连接到另一台服务器,具体的方案是由传入的调用决定的:如果传入的调用是HTTP,那么我们将通过HTTP到达另一台服务器;如果传入的调用是HTTP,那么我们将通过HTTP到达另一台服务器。如果传入调用是 HTTPS,那么我们将通过 HTTPS 到达另一台服务器。

Web服务可以注入(inject)一个WebServiceContext对象,我们曾经使用:

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

然后我们解析该 url 以确定它是否是 https/http。

但是,当我们使用Jetty时,我们发现requestURL没有被注入(inject)。还有其他方法可以解决吗?

最佳答案

我不太确定您正在运行的 jetty 和网络服务类型。但如果它在内部使用 servlet,那么我相信 HttpSerlvetRequest.isSecure() 应该对您有所帮助。

boolean isSecure()

Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS.

关于java - 如何知道 Web 服务调用中的连接是否通过 HTTPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18307038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com