[SPRING] Tomcat은 웹 응용 프로그램의 컨텍스트에 후행 슬래시를 추가하지 않습니다.
SPRINGTomcat은 웹 응용 프로그램의 컨텍스트에 후행 슬래시를 추가하지 않습니다.
URL을 입력하지 않으면 Tomcat이 내 앱 컨텍스트에 후행 슬래시를 자동으로 추가하도록하고 싶습니다.
부두에서 테스트 할 때 자동으로 내 슬래시가 내 앱 컨텍스트에 추가되지만 Tomcat에서는이를 수행하지 않습니다.
WAR를 다른 사람에게 넘기므로 배포 된 컨텍스트의 이름이 무엇인지 불확실합니다. 따라서 HTML의 리소스 참조는 모두 상대적입니다. Tomcat이 후행 슬래시가 추가 된 동일한 컨텍스트로 자동으로 리디렉션되도록하는 방법이 있습니까?
현재 Tomcat 7 with Spring 3 사용하기.
해결법
-
==============================
1.오래된 게시물이지만 Tomcat 7.0.67부터 context.xml 파일에 다음 속성을 추가해야합니다.
오래된 게시물이지만 Tomcat 7.0.67부터 context.xml 파일에 다음 속성을 추가해야합니다.
<Context mapperContextRootRedirectEnabled="true">...</Context>
7.0.67 변경 로그 기준 :
그리고 Tomcat 문맥 문서에서 :
-
==============================
2.응용 프로그램의 web.xml에 "/ *"에 대한 매핑이있는 것으로 보입니다. 서블릿 매핑을 "/ *"로 설정하면 tomcat이 요청을있는 그대로 웹 응용 프로그램에 전달합니다 (즉, 리디렉션하지 않음).
응용 프로그램의 web.xml에 "/ *"에 대한 매핑이있는 것으로 보입니다. 서블릿 매핑을 "/ *"로 설정하면 tomcat이 요청을있는 그대로 웹 응용 프로그램에 전달합니다 (즉, 리디렉션하지 않음).
올바르게 리디렉션하려면 "/ *"매핑을 "/"로 변경해야하며, 후자는 기본 서블릿을 의미합니다.
-
==============================
3.Tomcat은 자동으로 후행 슬래시를 추가합니다. Tomcat에서 제공하는 예제 애플리케이션으로 테스트 해보자.
Tomcat은 자동으로 후행 슬래시를 추가합니다. Tomcat에서 제공하는 예제 애플리케이션으로 테스트 해보자.
특별한 구성으로 인해 - 쿼리 문자열을 검사하고 응용 프로그램에서 필요에 따라 리디렉션하는 필터를 작성합니다. 어쨌든 이것은 여러 번 필요합니다 (http-> https 리다이렉션 등)
-
==============================
4.Tomcat에서 URL 재 작성을 시도해 보셨습니까? 도움이 될 수도 있습니다. http://code.google.com/p/urlrewritefilter/
Tomcat에서 URL 재 작성을 시도해 보셨습니까? 도움이 될 수도 있습니다. http://code.google.com/p/urlrewritefilter/
도움이되지 않으면 다음을 살펴보십시오. tomcat web.xml의 URL 재 작성
-
==============================
5.Pat의 탁월한 대답은 이것에 대한 몇 가지 세부 사항을 파헤치는 데 도움이되었습니다. 이것은 세션 쿠키 및 URL 리디렉션과 관련된 Tomcat의 일부 버전 (7.0.67 이상의 Tomcat 7 및 8.29 및 8.37의 Tomcat 8)과 관련이있는 것으로 보입니다.
Pat의 탁월한 대답은 이것에 대한 몇 가지 세부 사항을 파헤치는 데 도움이되었습니다. 이것은 세션 쿠키 및 URL 리디렉션과 관련된 Tomcat의 일부 버전 (7.0.67 이상의 Tomcat 7 및 8.29 및 8.37의 Tomcat 8)과 관련이있는 것으로 보입니다.
결론은 자바 서버가 끝에 "/ app_name /"과 같이 슬래시가있는 경로 특정 세션 쿠키를 만드는 경우 서버가 자동 초기 리디렉션 (/ app_name -> / app_name)을 수행해야한다는 것입니다. /) ... 그렇지 않으면 세션 쿠키가 요청과 함께 전송되지 않으며 유효한 세션이있는 것처럼 서버를 찾지 않습니다. 앱에서 인증까지 리디렉션 루프가 발생할 수 있습니다.
Tomcat에는 두 가지 동작을 모두 제어하는 설정이 있지만, 내가 알 수있는 한,이 버전에서는 본질적으로 동기화가 이루어지지 않아 리다이렉트를받지 않고 후행 슬래시가있는 쿠키를 얻을 수 있습니다. Tomcat 변경 로그에는 몇 가지 관련 문제 / 변경 사항이 있습니다. https://tomcat.apache.org/tomcat-8.0-doc/changelog.html
Pat는 이미 언급했듯이이 속성을 앱의 Context 요소에 추가하여 해결할 수 있습니다.
<Context mapperContextRootRedirectEnabled="true">
from https://stackoverflow.com/questions/11055608/tomcat-is-not-adding-trailing-slash-to-web-apps-context by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring의 Java 설정 내에서 bean을 Autowire (0) | 2019.02.04 |
---|---|
[SPRING] Spring MVC 컨트롤러 메소드의 유효한 리턴 타입은 무엇입니까? (0) | 2019.02.04 |
[SPRING] 기존의 Tomcat 웹 응용 프로그램에서 SSO를 구현하는 방법 (0) | 2019.02.04 |
[SPRING] 봄 컨트롤러의 정규식 (0) | 2019.02.04 |
[SPRING] 스프링 부트는 프로필이있는 임베디드 톰캣을 활성화 / 비활성화합니다. (0) | 2019.02.04 |