쿠키 JSESSIONID 이름 변경
단일 물리적 상자에서 여러 바람둥이 서버를 실행해야하는 요구 사항이 있습니다. 브라우저에서 액세스하는 동안 사용자가 애플리케이션간에 전환하면 이전에 애플리케이션에 액세스 한 사용자가 로그 아웃됩니다. 이는 JSESSIONID 쿠키 충돌 때문입니다.
한 가지 가능한 해결책은 각 응용 프로그램을 다른 컨텍스트에서 실행하는 것입니다. 불행히도 내 응용 프로그램은 앞에 request.getContextPath ()를 추가하여 리소스에 액세스하지 않으므로 컨텍스트 경로 설정에서 작동하지 않습니다.
이로 인해 충돌을 해결하기 위해 쿠키 JSESSIONID의 이름을 변경해야합니다. 이를 수행하는 방법이 있습니까? 그렇다면 어떻게?
내 질문을 명확하게 설명하기를 바랍니다.
참고 : 내 모든 애플리케이션이 동일한 컴퓨터의 다른 포트에서 실행되고 있습니다.
Servlet API 3.0을 사용하면 모든 것이 훨씬 간단 해집니다.
이제 web.xml에서 구성 할 수 있습니다.
<session-config>
<cookie-config>
<name>MY_JSESSIONID_YAHOOOOOO</name>
</cookie-config>
</session-config>
그게 다야!
다음은 context.xml 파일의 Tomcat7에서 나를 위해 작동합니다.
<Context path="/yourApp" sessionCookieName="custom_session_id">
다음 두 가지 시스템 속성을 사용하면 쉽게 수행 할 수 있습니다.
- org.apache.catalina.SESSION_COOKIE_NAME
- org.apache.catalina.SESSION_PARAMETER_NAME
기본값을 변경하기 위해 모든 값을 위의 속성에 전달할 수 있습니다.
여기 에 몇 가지 샘플 스크립트가 포함 된 전체 세부 정보 가 있습니다.
Tomcat 7은이를 org.apache.catalina.SESSION_COOKIE_NAME에서 기본 <Context> 구성의 속성으로 이동합니다. http://tomcat.apache.org/migration-7.html#Session_manager_configuration
이 시점에서 가능하지 않다고 생각합니다 -https://issues.apache.org/bugzilla/show_bug.cgi?id=42419 참조
마지막 항목은 "이는 5.5.x에서 수정되었으며 5.5.28 이후에 포함될 것입니다"라고 표시되어 있습니다. 이는 다음 포인트 릴리스입니다. 5.5.27이 현재 릴리스입니다.
이것이 작동하는지 100 % 확신 할 수는 없지만 jvmRoute
일반적으로로드 밸런서가 노드를 구분할 수 있도록로드 밸런싱 / 클러스터 환경에서 사용되는 속성을 사용할 수 있습니다. 예:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">
그러면 "ABCDEF123456.node1"과 같은 JSESSIONID 값이 생성됩니다.
문서 링크 .
참조 URL : https://stackoverflow.com/questions/877064/changing-cookie-jsessionid-name
'programing' 카테고리의 다른 글
Flask에서 request.args는 무엇이며 어떻게 사용됩니까? (0) | 2021.01.19 |
---|---|
Android Room Persistences 라이브러리 및 Kotlin (0) | 2021.01.19 |
콘솔에 출력 형식을 지정하고 탭 수를 지정합니다. (0) | 2021.01.19 |
인덱스를 포함하는 MySQL 테이블 복사 (0) | 2021.01.19 |
JS / jQuery를 사용하여 브라우저에서 터치 스타트 지원을 확인하는 방법은 무엇입니까? (0) | 2021.01.19 |