목차

Session Timeout 설정하기

JBoss EAP 4.x 5.x

  1. The session timeout hierarchy in JBoss EAP is (from lowest to highest precedence):

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

  1. 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.
  1. 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>

참조링크