Tomcat 8.5.X Chrome SameSite=none 쿠키 적용하기

크롬에서 아래와 같이 SameSite=none은 적용하였으나 Secure 모드로 설정되지 않은 경우에는 앞으로는 다른 도메인 간의 호출에서는 쿠키가 전달되지 않는 다는 경고가 뜬다.

A cookie associated with a cross-site resource at was set without the SameSite attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with SameSite=None and Secure. You can review cookies in developer tools under Application>Storage>Cookies and see more details at and .

크롬 80버전이 정식 출시되면 적용될 것 이라고 한다.

톰캣 설정

톰캣 설정의 server.xml에 아래 처럼 설정하여 SameSite=none을 적용한다.

<Context>
     <CookieProcessor sameSiteCookies="none" />
</Context>

server.xml

또한, httpOnlysecure 모드를 켜기 위해서는 web.xml의 세션 설정 부분에 추가 해준다.

<session-config>
    <session-timeout>30</session-timeout>
    <cookie-config>
            <http-only>true</http-only>
            <secure>true</secure>
    </cookie-config>
</session-config>

혹시 LegacyCookieProcessor를 사용한다면 동일한게 sameSiteCookies="none" 로 설정이 가능하다.

<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" sameSiteCookies="none" />

중요한 것은 LegacyCookieProcessor 클래스에 sameSiteCookies 옵션은 톰캣 8.5.42 부터 지원을 시작한 것으로 확인된다.

*이하 버전을 사용 중이라면 톰캣을 최신 버전으로 업데이트 해야 한다.*

크롬에서 확인

제대로 적용되었다면 크롬 > 개발툴 > Application > Cookies에서 해당 사이트의 쿠키에 HttpOnly, Secure, SameSite가 적용되어 있는 것을 확인할 수 있다.

크롬 쿠기 확인

Discussion and feedback