Tomcat 여러개 띄울 경우, 로그인 풀리는 현상 해결

톰캣을 여러개 띄울 경우, 로그인이 풀리는 현상이 발생 할 수 있습니다.
로컬 환경에 톰캣을 두개 띄워 작업을 진행했던적이 있었습니다.
빈번하게 로그인이 풀리게 되어 알아보게 되었습니다.

원인

문제는 JSessionID가 충돌하여 발생하였습니다. 톰캣 포트만 다르게하여 실행할 경우 JSessionID가 충돌하게 된것이죠.
JSessionID는 브라우져의 쿠키로 갖고 있습니다.
JSessionID는 도메인이나 IP주소로는 구분이 되지만 포트만 다르게하여 실행하는 로컬 환경의 경우 구분을 하지 못하기 때문에 JSessionID가 충돌이 나게 됩니다. 그래서 로그인이 풀리게 되는거죠.

해결책

이를 방지하기 위한 방법으로는 JSessionID를 구분하게끔 설정하여 해결할 수 있습니다.
톰캣의 server.xml 설정을 바꿔주어 해결할 수 있습니다.

  • 톰캣 1번 -> <Context … sessionCokieName=“JSESSIONID1”>
  • 톰캣 2번 -> <Context … sessionCokieName=“JSESSIONID2”>

Intellij 일 경우

그런데 한가지 문제가 더 있었습니다.
IntelliJ의 경우 Eclipse와 달리 톰캣 Extra Config를 사용하지 않고 tomcat home을 바라보게 되어 있습니다.
이는 context.xml을 생성해주어 해결할 수 있습니다.

Project Structure -> Modules 선택 -> Add Application Server Specific descriptor … 클릭하여 아래 그림과 같이 설정해주시면 됩니다. project Structure Application server
META-INF/context.xml이 생성 된 것을 확인 할 수 있습니다.
생성된 context.xml에 sessionCokieName 설정을 추가 해주시면 됩니다.


MyResume
고구장의 개발 메모, 기록, 공유 하고픈 정보를 위한 블로그입니다.

GitHubinstagram