Tomcat8.5.X에서 setMaxAge의 동작 (기한된 쿠키 작성시주의 사항)

2081 단어 자바Tomcat
8.5.X에서 setMaxAge로 만료 된 쿠키를 설정할 때 응답 헤더 출력에 변경 사항이 있습니다. IE만 영향을 미치지만 톰캣 버전을 올릴 때는 주의해야 합니다.

행동의 차이
8.5.X 계열의 Tomcat에서 쿠키에 setMaxAge()를 설정하면 응답 헤더의 출력 항목이 바뀝니다.

Cookie.java
Cookie newCookie = new Cookie("CTEST", "kusa");
newCookie.setMaxAge(600);
response.addCookie(newCookie);

응답 헤더 출력
현재 (2016/11)에서 최신을 얻고 비교합니다.
8.0.39 OR 8.5.8

responce
#8.0.39
HTTP/1.1 200 OK
Set-Cookie: CTEST=kusa; Expires=Sat, 19-Nov-2016 04:02:57 GMT

#8.5.8
HTTP/1.1 200
Set-Cookie: CTEST=kusa;Max-Age=600

Expires라고 출력하고 있던 부분이, Max-Age라고 하는 출력이 되어 있습니다. IE의 경우 Max-Age를 무시하기 때문에 setMaxAge로 기한을 설정해도 세션간에 유효한 쿠키가 되므로 주의가 필요합니다.





위는 Windows7/IE11의 응답 결과입니다. 쿠키의 만료일에 날짜가 들어 주었으면 합니다만, MaxAge를 무시하고 있기 때문에, 세션이 되고 있습니다. 운영 환경이 없기 때문에 Edge에서는 확인할 수 없습니다.

setMaxAge의 거동을 8.0.X 이전으로 되돌리는 경우는 이하의 방법이 있는 것 같습니다.
h tp : / / s tac ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 38696081 / 호 w - 토 짱 게 코 오키 - p 로세소 r - ぇ이 cy 고오 키에 p 로세 r - 닌 - m 또는 t-8

좋은 웹페이지 즐겨찾기