1. 문제상황
A웹사이트랑 B웹사이트랑 동시에 켜놓음
A웹사이트 주소
test.iptime.org:8200
B웹사이트 주소
test.iptime.org:8800
A사이트에서 로그인관련 인터셉터가 작동중인상황
B웹사이트에서 로그인
로그인 후 다른 페이지를 클릭
바로 세션이 날아가 로그아웃됨
2.원인
톰캣은 세션관리를 JSESSIONID라는 쿠키로 관리를 한다
생략시 Default 값이 'JSESSIONID'로 설정됨
확인은 톰캣 server.xml 에서 context 태그내에 sessionCookieName속성값으로 확인가능
쿠키는 포트를 구분하지 않고 특정 도메인에서 생성되어 해당 도메인에만 사용된다
따라서 동일한 도메인 동일한 세션아이디로 인해 충돌이 발생했던것
<Context docBase="ABC" path="/" reloadable="true" source="org.eclipse.jst.jee.server:ABC" sessionCookieName="JSESSIONID" /></Host>
<Context docBase="DS" path="/" reloadable="true" source="org.eclipse.jst.jee.server:DS" sessionCookieName="JSESSIONID" /></Host>
만약 두 프로젝트모두 sessionCookieName 가 설정되어있지 않거나(=> 생략시 JSESSIONID 로 자동지정됨)
설정되어있는데 이름이 같다면 충돌할 확률 높음
3.해결
sessionCookieName 값을 다르게 지정해주자
<Context docBase="ABC" path="/" reloadable="true" source="org.eclipse.jst.jee.server:ABC" sessionCookieName="JSESSIONID_ABC" /></Host>
<Context docBase="DS" path="/" reloadable="true" source="org.eclipse.jst.jee.server:DS" sessionCookieName="JSESSIONID_DS" /></Host>
반응형
'웹 개발 > 🎆 JSP' 카테고리의 다른 글
JSP | 세션시간 설정하는법 (0) | 2024.03.25 |
---|---|
Apache Tomcat 버전에 따른 JSP, Servlet 버전 (0) | 2024.03.25 |
전자정부 Spring 3.1버전 인터셉터로 로그인 세션체크 (0) | 2024.03.19 |
three.js JSP에 적용하기 (0) | 2024.03.08 |
JSP | postman,REST,JSON, Java CRAWLING (0) | 2022.12.05 |