JEUS 서버의 메인 설정 파일인 domain.xml에서 웹 엔진 내 세션과 관련된 태그에 대한 설명을 찾을 수 있다.
XML Schema 파일:
JEUS_HOME/lib/schemas/jeus/jeus-session-server.xsd
레퍼런스는 다음 형식으로 구성되어 있다.
XML Schema/XML 트리: XML 설정 파일의 모든 태그 리스트를 정리했다. 각 노드의 형식은 다음과 같다.
태그 레퍼런스로 빨리 찾아보기 위해서 각 태그마다 인덱스 번호( 예: (11) )를 붙여 놓았다. 태그 레퍼런스에서는 이 번호 순서로 설명한다.
XML Schema에서 정의한 XML 태그명을 <tag name> 형식으로 표시한다.
XML Schema에서 정의한 Cardinality를 표시한다. “?” = 0개나 1개의 element, “+” = 1개 이상의 element, “*” = 0개 이상의 element, (기호가 없음) = 정확히 1개의 element
몇몇 태그에는 “P” 문자를 붙여 놓았는데, 해당 태그는 성능에 관계되는 태그라는 것을 뜻한다. 이 태그는 설정을 튜닝할 때 사용된다.
Element Reference: 트리에 있는 각 XML 태그를 설명한다.
Dynamic: 동적 설정 반영 가능
Non-Dynamic: 동적 설정 반영 불가능, Dynamic이 설정되지 않은 항목들이 보통 이에 해당 하나 특별히 설명이 있는 경우 이 항목이 표시된다.
Description: 태그에 대한 간단한 설명.
Value Description: 입력하는 값과 타입.
Value Type: 값의 데이터 타입. (예: String)
Value Type Description: 값의 데이터 타입에 대한 설명
Default Value: 해당 XML을 사용하지 않았을 때 기본적으로 사용되는 값.
Defined Value: 이미 정해져 있는 값.
Example: 해당 XML 태그에 대한 예.
Performance Recommendation: 성능 향상을 위해서 추천하는 값.
Child Elements: 자신의 태그 안에 사용하는 태그.
(622) <session-config>?
(623) <timeout>? P
(624) <max-session-count>? P
(625) <reload-persistent>? P
(626) <tracking-mode>?
(630) <session-cookie>?
(631) <cookie-name>? P
(632) <url-cookie-name>? P
(633) <version>? P
(634) <domain>?
(635) <path>?
(636) <max-age>? P
(637) <secure>? P
(638) <http-only>? P
(639) <same-site>? P
(640) <comment>?
(622)
<domain> <servers> <server> <web-engine> <session-config>
| |
Description | 웹 엔진에서 공통적으로 사용할 세션을 설정한다. 컨텍스트별로 이 설정을 Override할 수 있으며, 우선순위는 컨텍스트, 웹 엔진 순이다. |
Value Type |
session-configType
|
Child Elements |
(623)
(624)
(625)
(626)
(630)
|
(623)
<domain> <servers> <server> <web-engine> <session-config> <timeout>
| |
Description | 서버에서 생성되는 세션의 유효기간을 결정한다. 마지막 세션 접근 이후 유효기간 이상의 시간이 지난 세션은 사용되지 않으며 제거 대상이 된다. 서블릿에서 설정하는 web.xml에 세션 Timeout보다는 우선순위가 낮아 개별적인 설정은 web.xml에 설정할 수 있다. -1을 설정할 경우 세션을 제거하지 않는다. 세션의 사용 가능 유효기간을 나타내며 단위는 분이다. 설정하지 않을 경우 기본값으로 30분이 설정된다. |
Value Type |
int
|
Default Value |
30
|
(624)
<domain> <servers> <server> <web-engine> <session-config> <max-session-count>
| |
Description | 메모리에 유지하는 최대 세션 수입니다. 기본값은 -1(무제한)입니다. 설정한 개수 이상의 세션 유지 중 세션 생성 요청이 있을 경우 오류가 발생됩니다. 메모리에 유지되는 세션의 최대 갯수이며 설정하지 않을 경우 무제한으로 세션 생성이 가능하다. |
Value Type |
int
|
Default Value |
-1
|
(625)
<domain> <servers> <server> <web-engine> <session-config> <reload-persistent>
| |
Description | 컨텍스트가 Reload될 때 세션의 Attribute 객체들을 계속 유지할지 여부를 결정한다. true일 경우 Reload와 관계없이 세션의 Attribute들은 계속 유지되며, false일 경우 Reload할 때 모든 Attribute들이 제거된다. 지속적으로 세션을 유지하기 때문에 성능적인 효율은 떨어진다. 이 부분은 Redeploy 기술과는 다른 Reload의 경우에 적용된다. Boolean 타입이고, 기본값은 false이다. |
Value Type |
boolean
|
Default Value |
false
|
(626)
<domain> <servers> <server> <web-engine> <session-config> <tracking-mode>
| |
Description | 세션을 전달하는 방법인 세션 트래킹 방법을 결정하는 설정으로 중복 사용할 수 있다. "Cookie", "Url", "Ssl"이 있으며 "Ssl"과 다른 설정과는 중복 사용할 수 없다. 아무런 설정을 하지 않으면 "Cookie"로 설정되지만 강제로 "Cookie"를 사용하지 않도록 한다면 세션이 유지되지 않음을 유의해야 한다. |
Value Type |
session-tracking-modeType
|
Child Elements |
(627)
(628)
(629)
|
(627)
<domain> <servers> <server> <web-engine> <session-config> <tracking-mode> <cookie>
| |
Description | 세션을 전달하는 세션 트래킹의 방법으로 쿠키를 사용할 때 세션을 쿠키로 전달할지를 설정한다. Boolean 타입으로, 기본값은 true이다. |
Value Type |
boolean
|
Default Value |
true
|
(628)
<domain> <servers> <server> <web-engine> <session-config> <tracking-mode> <url>
| |
Description | 세션을 전달하는 세션 트래킹의 방법으로 URL Rewriting 방법을 사용할 때 사용하는 설정이다. 기본값은 false이기에 기본적으로 사용되어 지지 않는다. URL에 세션이 노출되기 때문에 보안상의 문제가 발생할 수 있다. Boolean 타입으로, 기본값은 false이다. |
Value Type |
boolean
|
Default Value |
false
|
(629)
<domain> <servers> <server> <web-engine> <session-config> <tracking-mode> <ssl>
| |
Description | 세션 트래킹을 진행할 때 SSL을 사용하는 설정으로 기본값은 false이다. Boolean 타입으로, 기본값은 false이다. |
Value Type |
boolean
|
Default Value |
false
|
(630)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie>
| |
Description | 쿠키를 사용하여 세션을 전달할 때 해당 세션 쿠키에 대한 세부 설정들을 구성하고 있다. |
Value Type |
session-cookie-configType
|
Child Elements |
(631)
(632)
(633)
(634)
(635)
(636)
(637)
(638)
(639)
(640)
|
(631)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <cookie-name>
| |
Description | 쿠키를 사용하여 세션을 전달할 때 해당 세션 쿠키의 이름을 설정한다. 기본값은 JSESSIONID로 해당 이름 외의 값으로 세션 쿠키를 전달할 경우에 설정할 수 있다. String 타입으로 세션 쿠키의 Key 값으로 동작한다. |
Value Type |
valuableToken
|
Default Value |
JSESSIONID
|
(632)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <url-cookie-name>
| |
Description | url rewriting을 사용하여 세션을 전달할 때 해당 세션 쿠키의 이름을 설정한다. 기본값은 jsessionid로 해당 이름 외의 값으로 세션 쿠키를 전달할 경우에 설정할 수 있다. String 타입으로 세션 쿠키의 Key 값으로 동작한다. |
Value Type |
valuableToken
|
Default Value |
jsessionid
|
(633)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <version>
| |
Description | 쿠키 ID 버전을 설정한다. 0 또는 1로 설정하며, 기본값으로 0이 설정된다. [0] : Default Netscape 쿠키 유형 [1] : RFC 2109 Version의 쿠키 |
Value Type |
int
|
Default Value |
0
|
(634)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <domain>
| |
Description | 세션 쿠키가 적용되는 도메인 이름을 설정한다. 여기에 설정하는 도메인의 요청에 의해서 세션 쿠키가 사용된다. .foo.com으로 설정할 경우 first.foo.com, second.foo.com의 요청에 모두 해당 세션 쿠키가 사용된다. 하나의 적합한 도메인 이름. 이는 "."으로 시작되고 호스트 이름을 지정하면 안 된다(RFC-2109 스펙에 의해). |
Value Type |
valuableToken
|
(635)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <path>
| |
Description | 세션 쿠키가 적용되는 경로를 설정한다. 해당 경로 내의 요청에 대해서는 세션 쿠키가 사용된다. 쿠키는 도메인이 적합할 때까지 해당 URL에 요청과 함께 보내진다(<domain> 설정 항목 참조). 예를 들어 경로가 "/examples", 도메인은 ".foo.com", 클라이언트 요청들은 "www.foo.com/examples"이라면 클라이언트의 쿠키는 요청과 함께 보내진다. 도메인 하위에 하나의 적합한 URL 경로를 입력한다. |
Value Type |
valuableToken
|
(636)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <max-age>
| |
Description | 세션 ID 쿠키의 expires 속성을 설정한다. 세션 쿠키의 유효한 시간은 현재 시간으로부터 설정한 시간 동안만 유지된다. 해당 시간이 지나면 세션 쿠키는 효력이 없어져 사용되지 않는다. 초 단위로 설정하고, 기본값은 -1이다. |
Value Type |
int
|
Default Value |
-1
|
(637)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <secure>
| |
Description | 세션 ID 쿠키의 Secure 속성을 설정한다. true로 설정하면 세션 ID 쿠키는 오직 Secure HTTPS 커넥션으로 보내진다. 쿠키가 오직 HTTPS 위로 보내질지 여부를 결정하는 Boolean 타입이다. 기본값은 false이다. |
Value Type |
boolean
|
Default Value |
false
|
(638)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <http-only>
| |
Description | 세션 ID 쿠키가 HTTP 외의 Script 요청에 의해서 사용되는 것을 방지하는 보안기술을 설정한다. 해당 쿠키에 HttpOnly 옵션을 사용할지를 Boolean 타입으로 설정하며, 기본값은 true이다. |
Value Type |
boolean
|
Default Value |
true
|
(639)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <same-site>
| |
Non-Dynamic | 동적 변경이 불가능하다. |
Description | 세션 ID 쿠키가 사용자 의도와 상관없는 요청에 쓰이는 공격(사이트 간 요청위조)을 방지하는 보안기술을 설정한다. |
Value Description | 해당 쿠키에 SameSite 옵션을 사용한다면 Lax 혹은 Strict로 설정한다. |
Value Type |
same-siteType
|
Default Value |
Disable
|
Defined Value |
|
(640)
<domain> <servers> <server> <web-engine> <session-config> <session-cookie> <comment>
| |
Description | 해당 쿠키에 대한 목적 또는 설명을 기록한다. 사용자가 해당 쿠키에 대한 정보를 쉽게 알 수 있는 기능을 제공한다. Netscape Version 0의 쿠키에서는 지원되지 않는다. |
Value Type |
valuableToken
|
[예 9.1] domain.xml의 웹 엔진 내 세션 설정 예제
<?xml version="1.0" encoding="UTF-8"?><domain xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="7.0"> <servers> <server> <name>server1</name> <web-engine> <!-- Session Config Starting Point--> <session-config> <!-- Session Timeout --> <timeout>30</timeout> <!-- "true" setting will allow sessions to be shared in server scope --> <shared>false</shared> <!-- enable flag Sticky Route : recommend true for behavior--> <sticky-router>true</sticky-router> <!-- sessions don't have influence on context's reloading in "true" setting --> <reload-persistent>false</reload-persistent> <tracking-mode> <!-- enable flag using cookie --> <cookie>true</cookie> <!-- enable flag url rewriting --> <url>false</url> <ssl>false</ssl> </tracking-mode> <session-cookie> <!-- session cookie name --> <cookie-name>JSESSIONID</cookie-name> <version>0</version> <path>/</path> <max-age>-1</max-age> <secure>false</secure> <http-only>true</http-only> </session-cookie> </session-config> </web-engine> </server> <servers> <server> <name>server2</name> <web-engine> <!-- Simple you can remove config for default configuration--> </web-engine> </server> </servers> </domain>