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. 확인
'개발 > 스프링 프레임워크' 카테고리의 다른 글
[Spring Boot] JPA, AuditorAware 사용하여 사용자정보 자동 입력 (1) | 2023.07.12 |
---|---|
[Spring Boot] AutoConfigureMockMvc 사용하여 Controller 테스트 (0) | 2023.07.04 |
[Spring Boot] H2 + JPA 세팅 (1) | 2022.07.21 |
[스프링 프레임워크] 스프링MVC 프로젝트 + 톰캣 연결 (0) | 2017.12.01 |
[스프링 프레임워크] 스프링MVC 프로젝트 생성 및 스프링버전 변경 (3) | 2017.11.30 |