공부/Spring Boot
Spring Security 활용 회원 관리 (5) - AJAX 403 처리(Spring Boot)
오피스엑소더스
2019. 9. 26. 21:00
참고 : https://bestcure.tistory.com/entry/Spring-boot-security-%EC%82%AC%EC%9A%A9%EC%8B%9C-ajax-%EC%B2%98%EB%A6%AC
1. 개발환경
> jdk 8, spring boot 2.1.8, spring security, JSP
2. 문제
> 스프링 시큐리티를 적용한 프로젝트에서 ajax 통신을 시도했을 때, 403 에러 발생
3. 해결
> 원인 : CSRF 관련 이슈
> 해결방법 :
- JSP에 meta 태그 추가
- csrf 값을 얻어오기 위함
- JavaScript에서 csrf 토큰, 헤더 등록
4. 소스코드
> JSP
1 2 3 4 5 | <head> <!-- ajax 통신을 위한 meta tag --> <meta name="_csrf" content="${_csrf.token}"> <meta name="_csrf_header" content="${_csrf.headerName}"> </head> | cs |
> js
1 2 3 4 5 6 | // ajax 통신을 위한 csrf 설정 var token = $("meta[name='_csrf']").attr("content"); var header = $("meta[name='_csrf_header']").attr("content"); $(document).ajaxSend(function(e, xhr, options) { xhr.setRequestHeader(header, token); }); | cs |