on
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 withSameSite=None
andSecure
. 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>
또한, httpOnly
와 secure
모드를 켜기 위해서는 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