개발/스프링 프레임워크
[Spring Secutiry] Invalid CSRF token found for...
버물버물리
2020. 9. 15. 18:47
Spring Security 를 사용하여 개발중 Invalid CSRF token found for... 와 같은 에러가 발생하면서 로그인이 진행되지 않았다.
CSRF는 Cross-site request forgery (크로스-사이트 요청 위조) 이다.
위 문제를 해결하기 위해서는 CSRF Token 추가해야한다. 서버에서는 해당 토큰을 받아 세션에 추가한후 이후에 요청 파라미터의 토큰값과 세션의 토큰값을 비교하여 일치하는지 검증해야한다.
1. maven dependency 추가
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${secutiry.version}</version>
</dependency>
2. taglib 추가
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
3. form 태그 안에 csrf 추가
<form action="/login method="post">
<sec:csrfInput>
<input type="text" id="userId" name="userId">
<input type="password" id="userPwd" name="userPwd">
<button type="submit">로그인</button>
</form>
4. 확인