2010-11-23 2 views
2

Struts를 사용하고 Tomcat에 배포하는 기존 웹 응용 프로그램을 일부 수정하고 있습니다. 사용자가 특정 페이지를 방문 할 때 HTTP에서 HTTPS로 응용 프로그램을 리디렉션하도록했습니다.Tomcat : HTTP에서 HTTPS로 리디렉션하는 문제

<security-constraint> 
    <web-resource-collection> 
    <web-resource-name>secured page</web-resource-name> 
    <url-pattern>/secured.do</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

내 server.xml에에 :이를 위해, 내 web.xml에 추가

<Connector port="8443" 
maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
enableLookups="true" disableUploadTimeout="true" 
acceptCount="100" debug="0" scheme="https" secure="true" 
clientAuth="false" sslProtocol="TLS" 
keystoreFile=".keystore" 
keystorePass="password" /> 

그것은했다. 문제는 사용자가 HTTPS로 리디렉션되면 다른 일반 페이지를 방문 할 때도 HTTP로 돌아 가지 않는다는 것입니다. 내 질문은, 정상적인 행동이며, 이전에 언급 된 구성이 그렇게 할 수 있습니까? 아니면이 문제를 일으키는 응용 프로그램과 관련된 무언가가 있습니까? 고마워요

답변

2

예, Tomcat에서 정상적인 동작입니다.

일단 https로 이동하면 명시 적으로 http에 대한 URL이 아닌 한 다른 URL을 다시 http로 리디렉션하지 않습니다.

web.xml의 비보안 URL 패턴 블록에 추가해 볼 수도 있지만 https 후에도 http로 자동 리디렉션되지 않습니다. 당신이 정말로에 필요한 경우

<user-data-constraint> 
<transport-guarantee>NONE</transport-guarantee> 
</user-data-constraint> 

, 당신은 URL이 보안 패턴의 일부가 아닌 경우 다음 확인 다시 HTTP로 리디렉션하는 Filter를 작성해야합니다.

+0

감사합니다. 그 해결책이었습니다. https 요청을 만났을 때 리디렉션을 보내는 필터를 작성했습니다. 그러나 나는 이것이 POST 요청에 대해 작동하지 않는다는 것을 알아 차렸다. 어쨌든, 답변 주셔서 감사합니다. –

관련 문제