2010-08-19 1 views
2

JBoss 4.2를 사용하고 있습니다. 그리고 HTTPS를 통해 특정 URL 패턴을 방문하고 싶습니다. 자체 인증 키 저장소 파일을 사용했고 문제는 다음과 같습니다. 일단 HTTPS URL을 방문하면 다른 모든 URL이 사이트에서 HTTPS를 통과합니다. 무엇이 문제입니까?Jboss의 HTTPS 구성

업데이트 : 문제가 발견되었습니다. 리소스에 대한 참조로 상대 경로를 사용 했으므로 URL이 HTTPS로 변경되면 모든 후속 링크가 모두 HTTPS로 시작되므로 HTTPS 웹 페이지에서 절대 경로를 사용해야합니까?

내 구성이 같다 : web.xml에 :

server.xml의
<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>artists.jsp</web-resource-name> 
     <url-pattern>/artists.*</url-pattern> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

:

<Connector port="8443" 
    scheme="https"  
    secure="true"  
    clientAuth="false" 
    keystoreFile="${jboss.server.home.dir}/conf/server.keystore" 
    keystorePass="changeit" 
    sslProtocol = "TLS" /> 

답변

1

불행히도 예, URL은 프로토콜로 시작하기 때문에 (HTTP, HTTPS) 그들 사이를 전환하려면 절대 경로가 필요합니다.

내 권장 사항은 다음과 같습니다. 정적 인 메소드를 작성하여 완전하게 quallified 된 URL을 형식화하고 i.g.로 시작하는 모든 페이지와 같은 일부 이름 지정 규칙을 소개하십시오. _sec는 https와 함께 사용해야합니다.

public static String fmtURL(String relpath) { 
    String url = relparth.startsWith("_sec") ? "https://":"http://"; 
    url += hostname;      // from a configfile 
    if (relparth.startsWith("_sec") { 
     url += ":443"; 
    } 
    url += relpath; 
    return url; 
} 
:

의사 코드는 (단지 기본 개념을 설명하기 위해 테스트하지)