목차

Session Cookie name 변경

아래의 방법중 하나를 사용하면 된다.

EAP 7.x

Application level

Servlet 3.0 이상에서는 web.xml 내의 <cookie-config> 설정을 사용하면 된다.

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0"> 
    ...(snip)...

     <session-config>
       <cookie-config>
         <name>MYSESSIONID</name>
         ...(snip)...
       </cookie-config>
     </session-config>

    ...(snip)...
</web-app>

Server level

서버쪽에서 설정을 바꿔줄 경우에는 아래와 같이 undertow설정을 추가한다.

    <subsystem xmlns="urn:jboss:domain:undertow:3.1">
        ...
        <servlet-container name="default">
            <jsp-config/>
            <session-cookie name="DESIREDCOOKIENAMEHERE"/> <!-- added -->
            <websockets/>
        </servlet-container>

CLI 로는 아래와 같이 입력한다.

# standalone
/subsystem=undertow/servlet-container=default/setting=session-cookie:add(name=DESIREDCOOKIENAMEHERE)
# domain
/profile=profilename/subsystem=undertow/servlet-container=default/setting=session-cookie:add(name=DESIREDCOOKIENAMEHERE)

mod-jk 주의사항

session cookie name을 변경한 경우 mod-jk를 사용하여 WEB-WAS 연동되어있을 시에 Sticky Session 이 정상적으로 동작을 하지 않을 수 있다.
이것은 sticky session이 작동할때 session cookie 에 붙은 jvmRoute값을 기반으로 sticky 처리를 하게 되는데 기본값인 JSESSIONID 로 값을 가져오기 때문이다.
따라서 worker 설정에서 해당 balancer의 session_cookie 값을 WAS에서 설정한 session cookie name 으로 설정하여야 한다.

worker.balancer.session_cookie=JSESSIONID_CUSTOM

참조링크