2.2. 설정 항목
각 설정은 세 가지 방법으로 넣을 수 있습니다 — web.xml(또는 addInitParameter), 환경변수, JVM 시스템 프로퍼티. 어느 방법으로 넣든 결과는 같습니다.
아래 "항목과 기본값" 은 web.xml 기준 이름으로 정리했습니다. 환경변수와 시스템 프로퍼티로 넣을 때 쓰는 이름은 그 아래 "이름 대응표" 에 있습니다.
셋을 함께 쓰면 다음 순서로 이깁니다.
1. 환경변수 KSM_SESSION_TIMEOUT ← 가장 세다
2. 시스템 프로퍼티 ksm.session.timeout
3. web.xml <param-name>sessionTimeout
같은 이미지를 여러 환경(개발·검증·운영)에 배포할 때 유용합니다. 애플리케이션은 그대로 두고 환경변수만 바꿔 동작을 조정할 수 있습니다.
이름을 바꾸는 규칙은 낱말 경계에 기호를 넣는 것입니다 — sessionTimeout → KSM_SESSION_TIMEOUT(환경변수) → ksm.session.timeout(시스템 프로퍼티).
web.xml 의 값 자체에도 ${변수:기본값} 을 쓸 수 있습니다. 예를 들어 <param-value>${session.timeout:30}</param-value> 은 시스템 프로퍼티 session.timeout 이 있으면 그 값을, 없으면 30 을 씁니다.
항목과 기본값
기본값은 소스의 KhanSessionFilter.getSessionFilterConfig() 기준입니다. 넣지 않으면 이 값이 쓰입니다.
저장소 연결
| 설정 이름 | 설명 | 기본값 |
|---|---|---|
| configFile | 세션 저장소 접속 정보를 담은 파일 이름 (2단계에서 만든 파일) | 없음 — 반드시 넣어야 합니다. 없으면 기동 시 오류가 납니다 |
| infinispanCache | 세션 메타 정보를 담을 캐시 이름 | KHAN_SESSION |
| infinispanLoginCache | 세션 데이터를 담을 캐시 이름 | KHAN_SESSION_LOGIN |
| namespace | 저장소 키 앞에 붙는 이름. 한 저장소를 여러 시스템이 나눠 쓸 때 구분합니다 | KHAN |
쿠키
| 설정 이름 | 설명 | 기본값 |
|---|---|---|
| sessionId | 세션을 식별하는 쿠키 이름. WAS 의 JSESSIONID 는 그대로 두고 이 쿠키가 추가되며, 데이터그리드에서 세션을 찾을 때는 이 값을 씁니다 | __KSMSID__ |
| domain | 세션을 공유할 도메인. 하위 도메인만 다른 경우 공유할 수 있습니다 (예: login.openmaru.io 와 www.openmaru.io) | (없음) |
| path | 세션을 공유할 경로. 서로 다른 웹 애플리케이션끼리 공유하려면 / 로 설정합니다 | / |
| secure | 쿠키의 Secure 옵션. HTTPS 로만 쿠키를 보냅니다 | false |
| httpOnly | 쿠키의 HttpOnly 옵션. 자바스크립트에서 쿠키를 읽지 못하게 합니다 | false |
| sameSite | 쿠키의 SameSite 옵션 | (없음) |