환경구성 : Spring Boot, Thymeleaf, Spring Security
Spring Boot, Spring Security 구성이며 아이디, 패스워드를 RSA 암호화를 통해 서버로 전송하려고 RSA 공개키 요청중에 /auth/login/main 으로 Redirect가 되는 에러를 만났다.
요청은 아래와 같습니다.
Spring Security Config
AuthController
left.html
위와 같이 Spring Security Config 에 따로 csrf() 설정을 하지 않았으므로 enabled(활성화) 되어 있고
post 요청을 하게 되면 302 Redirect가 발생합니다.
원인
Spring Security 의 CSRF 설정 때문입니다.
기본적으로 Spring Security 는 CSRF 설정이 enabled 되어 있기 때문에 GET 요청을 제외한
POST/PUT/DELETE 등 CSRF 토큰이 포함되어 있어야 서버에 정상적인 요청을 할 수 있습니다.
해결
해결에는 2가지 방법이 있습니다. CSRF 토큰을 포함시키는 설정을 추가하는 방법과 CSRF 설정을
비활성화하는 방법입니다. 또 한가지 방법은 POST 방식이 아닌 GET 방식으로 보내는 방법입니다.
본인은 다음 작성글에 CSRF 설정글을 작성할 예정이므로 비활성화 방법으로 하겠습니다.
아래 이미지와 같이 Spring Security Config에 .csrf().disable() 을 추가하여 CSRF 설정을 비활성화 하면 정상적으로
요청이 가는걸 확인할 수 있습니다.
200 코드로 정상적으로 요청이 되는걸 확인할 수 있습니다.