231205 TIL - 스프링 시큐리티 기본(+csrf 설정)

jkeum·2023년 12월 5일
0

TECHIT-BackendSchool

목록 보기
20/50
post-thumbnail

스프링 시큐리티 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만 추가해도 된다.

profile
It's me, jkeum!

0개의 댓글