[개요]
웹 서비스를 개발하는 도중 redirect를 할 때 [리다이렉트한 URL;jsessionid=XXX]와 같이 url 뒤에 jsessionid가 붙는 경우가 있어 이를 방지하는 방법을 공유합니니다.
[문제의 원인]
브라우저에서 쿠키를 사용할 수 없거나 쿠키가 없는 경우 URL이 인코딩될 때, jsessionid가 URL에 추가됩니다.
또한, 쿠키가 활성화된 경우에도 URL이 인코딩되는 경우 Java 애플리케이션은 첫 번째 요청에 대한 모든 URL에 jsessionid를 추가됩니다. 이는 첫 번째 요청을 보낼 때 서버가 브라우저에서 쿠키가 사용 가능한지 여부를 모르기 때문에 발생합니다.
[문제 해결 방법]
해당 문제는 리다이렉트를 하는 과정에서 URL을 다시 작성 즉, URL rewriting을 하면서 발생하는 문제인데 이는 web.xml이나 application.yml에 session-config를 설정하면서 방지할 수 있습니다.
web.xml
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
application.yml
server:
servlet:
session:
timeout: 30m
tracking-modes: cookie
* 해당 설정은 Servlet 3.0 버전 이상부터 적용 가능합니다.
https://sites.google.com/site/javatechnologyworld/remove-jsessionid-from-url-java
반응형
'[DEV] 기록' 카테고리의 다른 글
크롬 브라우저 HSTS 제거하는 방법 (0) | 2020.09.15 |
---|---|
Eclipse ctrl + space 자동완성이 안 될 경우 (0) | 2020.09.10 |
jQuery 동적으로 form 생성 후 POST 방식으로 전송 (0) | 2020.08.19 |
Lombok) 상속받는 부모 클래스 필드도 빌더 패턴을 적용하고 싶을 경우 (2) | 2020.08.07 |
@Pattern 어노테이션을 통해 전화번호가 유효한 형태인지 검증 (0) | 2020.07.28 |