글쓴이 보관물: 낭창

Tomcat 7 에서 jsessionId 가 URL에 붙지 않도록 하기

Tomcat 7 + Spring 3.0 사용 중인데,

언젠가 부터 URL 뒤에 ;jsessionid= 블라블라 가 붙어있다.

첨에는 별 신경을 안 썼는데, <c:url> 태그를 사용해서 만든 URL에 이게 붙는 바람에

조금 곤란하게 되는 일이 생겼다.

그래서 찾아보니, 서버에서 session 관리하는 방법 중에 URL에 session ID를 붙여서

하는 방법을 사용하기 때문이고, session 관련 기능을 쓰면 그렇게 된단다.

그래서 없애는 방법이 없나 좀 찾아 봤는데, Spring security 쪽에서 설정을 바꾸는 방법도 있다는데,

Spring security는 아직 쓰지도 않고 있으니 이건 아닌거 같고, Tomcat 7에서 web-app 설정을 추가해서

해결이 가능하다. 다음을 web.xml 에 추가해 주면 된다.

<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>

session 관리를 cookie를 통해서 하라고 설정하는 거 같다.

Servlet 3.0 이상에서 지원하는 거라서 Tomcat 7 이상이어야 되고, 첫 부분에 다음과 같이

버전을 3.0 으로 해줘야 한다.

<web-app version=”3.0″ xmlns=”http://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”>

일단 해결은 됐는데, 뭔가 좀 찝찝하기도 함=_=

SeeAlso :
 * http://www.gotoquiz.com/web-coding/programming/java-programming/disable-url-session-ids-jsessionid-in-tomcat-7-glassfish-v3/