2013-08-19 2 views
1

부두 사용 7.0.2. 서비스는 80 및 443 포트에서 수신 대기합니다. 하나의 특별한 API에서, 우리는 다른 서버에 연결해야하는데,이 계획은 들어오는 호출에 의해 결정됩니다. 들어오는 호출이 HTTP이면 HTTP로 다른 서버에 도달합니다. 들어오는 호출이 HTTPS이면 우리는 HTTPS를 통해 다른 서버에 접속합니다. 웹 서비스 호출에서 HTTPS를 통한 연결인지 확인하는 방법은 무엇입니까?

웹 서비스

은에서으로, WebServiceContext 객체를 injecct 수 있으며, 우리는 사용하는 데 사용 :
MessageContext ctx = (WebServiceContext)wsContext.getMessageContext(); 
String requestUrl = ctx.get("com.sun.xml.ws.transport.http.servlet.requestURL"); 

그런 다음 우리가 HTTPS/HTTP 있는지 알고 URL을 구문 분석합니다.

그러나 Jetty를 사용하면 requestURL이 삽입되지 않은 것으로 나타났습니다. 해결 방법의 또 다른 방법이 있습니까?

답변

1

나는 부두와 일종의 웹 서비스에 대해 확신하지 못합니다. 하지만 그 안에 서블릿을 사용한다면 HttpSerlvetRequest.isSecure()가 도움이된다고 생각합니다.

isSecure를 불리언()는

요청은 예컨대 HTTPS 같은 보안 채널을 사용하여 제조되었는지를 나타내는 부울 값을 반환.

+0

죄송합니다. 나는 분명히 말하지 않았습니다 ... 저는 임베디드 Jetty를 사용하고 있으며 웹 응용 프로그램 컨텍스트를 사용 중이므로 사용할 수있는 서블릿 컨텍스트가 없습니다. Jetty는 MessageContext에 서블릿을 삽입하지 않습니다. 아무도 어떻게 알 수 있습니까? –

관련 문제