반응형
서블릿에 대한 요청이 HTTP 또는 HTTPS를 사용하여 실행 어떻게 알 수 있습니까?
Java로 서블릿을 작성하고 해당 서블릿에 대한 요청이 HTTP 또는 HTTPS를 사용하여 실행하고 싶습니다.
모두 사용할 수 있지만 request.getProtocol()
두 방법에서 HTTP / 1.1을 반환합니다.
어떤 아이디어?
HttpSerlvetRequest.isSecure () 가 답 입니다. ServletContainer는 다음과 같은 경우에 true를 반환합니다.
- ServletContainer가 자체적으로 https에서 요청을 수락 할 수있는 경우입니다.
- ServletContainer가 LoadBalancer가있는 경우입니다. 그리고 LoadBlancer는 HTTPS에 , 대한 요청 고객을 받고 또는 일반 HTTP 의 ServletContainer 동일한에 요청 고객을 전달했습니다 . 이 경우 LoadBalancer는 X-SSL-Secure : true 헤더를 ServletContainer로 전송합니다.
컨테이너는 또한 https에서 수신 될 때이 요청 속성을 사용할 수 있습니다.
- javax.servlet.http.sslsessionid
- javax.servlet.request.key_size
- javax.servlet.request.X509Certificate
포트 번호에 의존 할 수 없습니다.
그러나 계획에 의존 할 수 있습니다.
사용 : request.getScheme () 인지 확인합니다 https
.
보안 연결입니다.
Tomcat 버전에 관계없이 작동해야한다고 생각합니다.
isSecure . 상속 된 메서드를 확인하십시오.
https와 http는 다른 포트에서 실행됩니다. 따라서 요청에서 포트를 가져오고 요청이 어느 포트에서 왔는지 알 수 있으므로 프로토콜을 알 수 있습니다. int 포트 = request.getServerPort ();
반응형
'ProgramingTip' 카테고리의 다른 글
IF EXISTS 하위 쿼리와 함께 SQL Select 문을 사용하는 방법은 무엇입니까? (0) | 2020.11.14 |
---|---|
Java에서 ResultSet을 사용하여 행 수를 얻는 방법은 무엇입니까? (0) | 2020.11.14 |
Liquid 마크 업으로 오늘 날짜를 Jekyll에서 확인하세요 (0) | 2020.11.14 |
K # 동적 개체에서 속성 값 가져 오기 (반사?) (0) | 2020.11.13 |
'double'을 입력하도록 목록 생성을 강제하는 방법 (0) | 2020.11.13 |