본문 바로가기
Tomcat

[Tomcat 9] HTTP TO HTTPS Redirect 특정 URL만 적용 해보기

by Hwoarang757 2023. 4. 9.

WebContent/WEB-INF/web.xml 에 CONFIDENTIAL 명시 진행 시에 ,

HTTP 로 들어오는 Request에 대한 HTTPS Redirect Port는

Tomcat의 Server.xml 에 명시 된 redirectPort로 Redirect 되는 것으로 확인 하였습니다.

 

Server.xml 의 내용 입니다

(ex : http://localhost:38080 으로 접근 시에  -> https://localhost:8443 으로 Redirect  )

<Connector connectionTimeout="20000" port="38080" protocol="HTTP/1.1" redirectPort="8443"/>

 

HTTP TO HTTPS 로 Redirect 하기 위하여 WebContent/WEB-INF/web.xml  에 CONFIDENTIAL 을 명시 하였습니다.

    
    <security-constraint>
	    <web-resource-collection>
	        <web-resource-name>HTTPSREDIRECT</web-resource-name>
	        <url-pattern>*.do</url-pattern>
	        <url-pattern>*.jsp</url-pattern>
	    </web-resource-collection>
	    <user-data-constraint>
	        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
	    </user-data-constraint>
    </security-constraint>
    
    
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>NOREDIRECT</web-resource-name>
            <url-pattern>/mobileAction.do</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

위에 명시드린 예제의 규칙은 접근 되는 확장자가 *.do 또는 *.jsp 일시에는 무조건 HTTP 에서 HTTPS 로 Redirect 처리 합니다 , 

만일 접근 URL 중 /mobileAction.do 로 접근 한다면 HTTPS 로 Redirect 처리 하지 않습니다 ( NONE 옵션 ) 

 

 

감사합니다.