웹로직에서 세션 사용 시에 디폴트 세션 ID는 "JSESSIONID" 이다. 복 수개의 웹 애플리케이션에서 별도 세션ID를 설정하지 않고 사용한다면, JSESSIONID라는 동일한 세션 ID가 중복되어 원하지 않는 결과를 얻을 수 있다.
이러한 문제를 해결하기 위해서는 웹 애플리케이션 설정에서 고유의 세션 ID를 설정해야 한다.
설정할 부분은 WAS 설정파일과 WebServer 플러그인 설정 파일이다
1. 설정
1) WAS 영역 - 웹 애플리케이션의 배포디스크립터인 WEB-INF/weblogic.xml
<weblogic-web-app> <session-descriptor> <cookie-name>MYJSESSIONID</cookie-name> </session-descriptor> </weblogic-web-app> |
2) WebServer 플러그인 영역
웹티어, Apache, iPlanet 등 웹서버에서 WAS와 연동하기 위한 플러그인 설정 부분이다.
... <IfModule mod_weblogic.c> WebLogicCluster 192.1.1.3,192.1.1.4 ... CookieName MYJSESSIONID ... </IfModule> |
위에서 <cookie-name>과 CookieName 값이 반드시 일치해야 한다.
2. Session ID를 확인하는 방법
1) HTTP Watch와 같은 툴을 이용하는 방법
별도 화면 캡처는 하지 않음
2) jsp 예제를 통해 Cookie 명을 출력해보는 방법
<jsp 예제>
... request.getHeaderNames() while () { } Cookie cookies[] = request.getCookies() while () { } ... |
3. 웹로직 Session ID 포맷
Session ID를 확인하는 방법은 HttpServletRequest.getSessionID() 를 출력하거나, 위에서 설정한 쿠키(예시:MYJSESSIONID) 값을 출력해보면 된다.
위에서 설명한 방법으로 출력해보면, Session ID 포맷은 아래와 같다.
[클러스터링 환경에서 세션 복제]
JSESSIONID=SESSION_ID!PRIMARY_JVMID_HASH!SECONDARY_JVM_HASH!CREATION_TIME
[단일 인스턴스 환경]
JSESSIONID=SESSION_ID!PRIMARY_JVMID_HASH!CREATION_TIME
참고로, 세션 ID 값의 포맷은 !(느낌표)로 필드를 구분되어 있다.
예시)
BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj!-314662473
위에서 Session ID는 BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj
-314662473은 JVMID(해쉬값)으로서 JVM을 구별할 때 사용함
'WAS > WebLogic' 카테고리의 다른 글
[보안] 웹 관리 콘솔 접속 제어 (0) | 2017.05.30 |
---|---|
[Tips] 관리자 패스워드 변경 (0) | 2017.02.27 |
[Tips] bsu 명령어 (0) | 2016.12.13 |
[Tips] 웹서버 플러그인 주요 파라미터 (0) | 2016.11.26 |
[개요] 서버(인스턴스) 라이프 사이클(Life Cycle) (0) | 2016.11.24 |