Servlet API 4.0부터 SameSite 속성과 호환되지 않아 setHeader/addHeader 솔루션을 사용해야 한다고 한다.
또한 모든 요청 쿠키(sameSite=Strict/Lax/None; Secure로 설정되지 않은 경우)는 응답에서 addHeader('Set-Cookie',...)를 통해 추가해야 한다. (추후 다른 브라우저에서도 거부되는 것을 방지하기 위해)
boolean firstHeader = true;
String sameSite = RequestUtil.isSecure(request) ? "; SameSite=None; Secure" : "; SameSite=Lax";
for (String header : headers) { // there can be multiple Set-Cookie attributes
if (firstHeader) {
response.setHeader("Set-Cookie", String.format("%s; %s", header, sameSite));
firstHeader = false;
continue;
}
response.addHeader("Set-Cookie", String.format("%s; %s", header, sameSite));
}