Session Timeout 설정하기
JBoss EAP 4.x 5.x
- The session timeout hierarchy in JBoss EAP is (from lowest to highest precedence):
- org.apache.catalina.session.Manager.maxInactiveInterval (default 60 seconds)
- Set globally in JBossWeb's web.xml (default 30 minutes):
For EAP 4.x, $JBOSS_HOME/server/$PROFILE/deploy/jboss-web.deployer/conf/web.xml
For EAP 5.x, $JBOSS_HOME/server/$PROFILE/deployers/jbossweb.deployer/web.xml
- Set in the web application's web.xml: WEB-INF/web.xml
- Dynamically set in code by javax.servlet.http.HttpSession#setMaxInactiveInterval(int)
- In other words, if the session timeout is set programmatically in the web application via javax.servlet.http.HttpSession#setMaxInactiveInterval(int). This takes precedence over the timeout set in the webapps web.xml, which takes precedence over configured timeout in JBossWeb's gloabl web.xml.
- In web.xml, the configuration format is:
<session-config> <session-timeout>30</session-timeout> </session-config>
JBoss EAP 6
For EAP 6 up to 6.3 it is not possible to set session timeout globally because there is no global web.xml and there is no setting in the web subsystem currently.
The default Http session timeout in EAP 6 is 30 minutes and it is hard-coded at the container level.
If there is a need to set the session timeout, this should be done in the web application's web.xml.
Starting from EAP 6.4 you can modify the default session timeout by changing the default-session-timeout attribute of the web subsystem.
Setting it 15 minutes for example:
/subsystem=web:write-attribute(name=default-session-timeout,value=15)
result in xml:
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false" default-session-timeout="15"> ... </subsystem>
JBoss EAP 7
HTTP 세션 시간 초과는 HTTP 세션을 유효하지 않은 것으로 선언하는 데 필요한 비활성 시간을 정의합니다. 예를 들어, 사용자는 HTTP 세션을 생성하는 JBoss EAP에 배포 된 응용 프로그램에 액세스합니다. 그런 다음 해당 사용자가 HTTP 세션 시간 초과 후 해당 응용 프로그램에 다시 액세스하려고하면 원래 HTTP 세션이 무효화되고 사용자는 강제로 새 HTTP 세션을 만듭니다. 이로 인해 고정되지 않은 데이터가 손실되거나 사용자가 다시 인증해야 할 수 있습니다.
HTTP 세션 타임 아웃은 애플리케이션의 web.xml파일에 구성되지만 JBoss EAP에서는 기본 HTTP 세션 타임 아웃을 지정할 수 있습니다. 서버의 시간 초과 값은 배포 된 모든 응용 프로그램에 적용되지만 응용 프로그램 web.xml의 값은 서버의 값을 대체합니다.
서버 값은 undertow
서브 시스템 의 servlet-container
섹션 에있는 default-session-timeout
등록 정보 에 지정됩니다. default-session-timeout
의 값은 분 단위로 지정되며 기본값은 30
입니다.
/subsystem=undertow/servlet-container=default:write-attribute(name=default-session-timeout, value=60) # 이후 JBoss 를 reload 하면 적용됩니다. reload
또는 직접 configuration 파일을 수정할 수 있습니다.
<subsystem xmlns="urn:jboss:domain:undertow:3.1"> <buffer-cache name="default"/> <server name="default-server"> <ajp-listener name="ajp" socket-binding="ajp"/> <http-listener name="default" socket-binding="http" redirect-socket="https"/> <host name="default-host" alias="localhost"> <location name="/" handler="welcome-content"/> <filter-ref name="server-header"/> <filter-ref name="x-powered-by-header"/> </host> </server> <!-- ## 아래 부분을 수정합니다. ## --> <servlet-container name="default" default-session-timeout="60"> <jsp-config/> <websockets/> </servlet-container> <handlers> <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> </handlers> <filters> <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/> <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/> </filters> </subsystem>