단순히 현재 URL이 HTTP 또는 HTTPS인지 여부를 확인하고자합니다. 문제는 테스트 환경에서 자체 서명 된 인증서가 여러 개 있기 때문에 인증서 가능성을 검증하는 것이 옵션이 아닙니다. 다음을 시도했지만 모든 경우에 thry가 작동하지 않는 것으로 보입니다.현재 URL에서 HTTP 또는 HTTPS 가져 오기
String protocol = request.getProtocol();
out.println(protocol); // prints out HTTP/1.1 on self signed servers
Boolean secure = ((HttpServletRequest)pageContext.getRequest()).isSecure();
if (secure) {
out.println("secure")
} else {
out.println("not secure") // always fails
}
은 내가 대해 GetRequest를 사용하고이 'https'문자열을 검색 할 수도있을 것 같군요 -하지만 난이 일을 진정으로 지원하는 방법이 있으리라 믿고있어.
[java ee doc] (http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#isSecure%28%29)는 'isSecure()'가 이 요청은 HTTPS와 같은 보안 채널을 사용하여 이루어졌습니다. 자기 서명 인증서에 신경 쓰지 않는 것 같습니다. – Haozhun
그냥 추측하지만 실제 서명 인증서로 시도해 보셨습니까? 어쩌면 자체 서명 된 인증서가 안전하지 않기 때문에 false를 반환합니다. –
isSecure'가 작동해야하지만 환경에 따라 다릅니다. HTTP 역방향 프록시 구성 애플리케이션 서버를 지키고있는 HTTP 서버는 무엇입니까? – home