JAVA
SameSiteCookieFilter 설정하기 Springboot 1.4.2
dodo1054
2024. 4. 1. 16:24
반응형
- Main 에서 따로 실행되는 컨트롤러가 있는 경우
- SameSiteCookieFilter Class 만들기
@Component
public class SameSiteCookieFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 필요한 초기화 작업 수행
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
if (httpRequest.getSession(false) != null) {
Cookie[] cookies = httpRequest.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
// SameSite=Lax 속성을 포함한 Set-Cookie 헤더 생성
String setCookieHeader = String.format("%s=%s; SameSite=Lax", name, value);
// 응답 헤더에 Set-Cookie 헤더 추가
httpResponse.addHeader("Set-Cookie", setCookieHeader);
}
}
}
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
- Main Controller
@Controller
public Class MainController {
private final SameSiteCookieFilter sameSiteCookieFilter;
@Autowired //의존성 주입
public MainController(SameSiteCookieFilter sameSiteCookieFilter) {
this.sameSiteCookieFilter = sameSiteCookieFilter;
}
...
...
}
- 브라우저> 개발자모드 > Application > Cookies 에서 SameSite Lax 설정 확인
반응형