토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

번역을 완료하지 않은 문서입니다. 언제든지 내용을 수정할 수 있습니다.

스프링 시큐리티 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.

목차:


스프링 시큐리티 웹플럭스 기능은 WebFilter를 사용하며, 스프링 웹플럭스와 스프링 WebFlux.Fn에서 동일하게 동작한다. 아래에서 설명하는 코드를 사용하는 샘플 어플리케이션을 참고하라:


23.1. Minimal WebFlux Security Configuration

다음은 웹플럭스 시큐리티를 위한 최소한의 설정이다:

@EnableWebFluxSecurity
public class HelloWebfluxSecurityConfig {

    @Bean
    public MapReactiveUserDetailsService userDetailsService() {
        UserDetails user = User.withDefaultPasswordEncoder()
            .username("user")
            .password("user")
            .roles("USER")
            .build();
        return new MapReactiveUserDetailsService(user);
    }
}

이 설정은 폼 인증과 http 기본 인증을 제공하고, 모든 페이지에 인증한 사용자만 접근할 수 있도록 인가 설정을 만들고, 디폴트 로그인 페이지와 디폴트 로그아웃 페이지를 세팅하며, 보안 관련 HTTP 헤더와 CSRF 방어 등을 설정한다.


23.2. Explicit WebFlux Security Configuration

최소한의 웹플럭스 시큐리티 설정을 명시적으로 선언하면 다음과 같다:

@Configuration
@EnableWebFluxSecurity
public class HelloWebfluxSecurityConfig {

    @Bean
    public MapReactiveUserDetailsService userDetailsService() {
        UserDetails user = User.withDefaultPasswordEncoder()
            .username("user")
            .password("user")
            .roles("USER")
            .build();
        return new MapReactiveUserDetailsService(user);
    }

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
        http
            .authorizeExchange(exchanges -> exchanges
                .anyExchange().authenticated()
            )
            .httpBasic(withDefaults())
            .formLogin(withDefaults());
        return http.build();
    }
}

이 코드는 위에 있는 최소한의 설정과 동일한 설정을 명시적으로 정의한다. 여기에선 디폴트 값을 쉽게 변경할 수 있다.


전체 목차는 여기에 있습니다.

<< >>