아래의 방법중 하나를 사용하면 된다.
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>
서버쪽에서 설정을 바꿔줄 경우에는 아래와 같이 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)
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