스프링 시큐리티 build.gradle에 추가하고 아무 설정도 하지 않으면 기본적으로 스프링 시큐리티에서 제공하는 설정으로 활성화가 된다.
내가 따로 코드에서 설정한 권한 같은 것들과 스프링 시큐리티에서 제공하는 게 따로 분리되어 각각 실행된다.
스프링 시큐리티의 기본값을 해제하기 위해 직접 filterChain 빈을 등록할 수 있다.
@Configuration
public class SecurityConfig {
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http.build();
}
}
여기에 원하는 설정들을 추가하면 된다.
스프링 시큐리티를 꺼도 csrf 체크는 활성화되어 있다.
POST 전송 때 csrf 토큰이 유효한지 확인해서 그렇지 않으면 오류를 발생시키는 것이다.
@Configuration
public class SecurityConfig {
@Bean
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(
csrf -> csrf
.disable()
);
return http.build();
}
}
이렇게 csrf 체크를 끌 수 있다.
csrf 체크를 끄지 않는 방법도 있다.
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}">
form 전송하는 부분에 추가하면 된다.
이걸 추가하지 않아도, form 태그 속성에 th:action
만 추가해도 된다.