본문 바로가기

WEB & WAS

[WEB/WAS] 서브 도메인간 세션 공유

반응형

개요

기본적으로 세션은 도메인이 서로 다를 경우 각 도메인마다 각각 다른 세션을 생성한다. 근데 A.domain.com(이하 A)과 B.domain.com(이하 B) 도메인이 같은 세션을 공유하고자 할경우가 있다. 단 A와 B는 동일한 컨텍스트(Context)를 사용한다. 예로 사용자가  A에 로그인시 생성된 세션을 가지고 B에 로그인 과정없이 로그인할수 있게 하고 싶을 것이다.  하지만 도메인이 다르기 때문에 사용자가 A에서 생성된 세션을 가지고 B에 접속할 수가 없다.  별도의 SSO(single sing-on)을 사용할 경우는 이런 문제에서 벗어날 수 있지만 별도의 비용을 추가해야 하는 부담이 발생한다.

 

1. WebSphere Application Server

배치관리자 : 서버 > 모든 서버 > 서버 선택 > 컨테이너 설정 > 세션 관리 > 쿠기 사용

 1. 쿠키 도메인

  예) .domain.com 처럼 앞에 .(dot) 으로 시작

 2. 쿠키 경로

쿠키가 전송될 경로를 제한하려면 값을 지정하십시오. 경로를 제한하여 쿠키가 서버의 특정 URL로 이동하지 못하도록 방지할 수 있습니다. 루트 디렉토리를 지정하면 해당 서버에서 액세스하는 경로에 관계 없이 항상 쿠키가 전송

* 클러스터 구성에서는 클러스터에 참가한 모든 클러스터 멤버에 대해서 동일구성을 해줘야 한다.

* 설정 변경후에는 WAS를 재시작 해야만이 변경사항이 적용된다.

2. Weblogic

WEB-INF/weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://ww
w.w3.org/2001/XMLSchema-instance">

  <context-root>/myapp</context-root>

  <session-descriptor>

      <persistent-store-type>replicated_if_clustered</persistent-store-type>

      <cookie-domain>.hoya.com</cookie-domain> 

      <cookie-path>/</cookie-path>

  </session-descriptor> 

</weblogic-web-app>

3. Tomcat

conf/Catalina/<hostname>/context.xml (version 9 에서 테스트)

<Context docBase="/web/application/dir reloadable="true" sessionCookieDomain="domain.com" sessionCookiePath="/">

* 도메인명 앞에 .(dot) 없음 ( 이전 버전에서는 .(dot) 가 있었던것 같은데 .. 9 버전에서는 .(dot) 있을 경우 오류가 발생)

* sessionCookiePath : 쿠키를 허용할 URL, "/" 는 모든 쿠기 허용

반응형

'WEB & WAS' 카테고리의 다른 글

웹서버 HTTP2 지원 확인 방법  (0) 2019.11.25
PKCS 헤더  (0) 2019.11.24
openssl 명령어  (0) 2019.11.22
Servlet 버전별 web.xml 스키마 기술  (1) 2019.11.18
WAS 제품별 용어 비교  (0) 2019.09.25