アノテーションインターフェース EnableWebFluxSecurity


@RetentionSE(RUNTIMESE) @TargetSE(TYPESE) @DocumentedSE @Import({org.springframework.security.config.annotation.web.reactive.ServerHttpSecurityConfiguration.class,org.springframework.security.config.annotation.web.reactive.WebFluxSecurityConfiguration.class,org.springframework.security.config.annotation.web.reactive.ReactiveOAuth2ClientImportSelector.class,org.springframework.security.config.annotation.web.reactive.ReactiveObservationImportSelector.class}) public @interface EnableWebFluxSecurity
Spring Security WebFlux サポートを追加するには、このアノテーションを Configuration クラスに追加します。その後、ユーザーは 1 つ以上の ServerHttpSecurity Bean インスタンスを作成できます。最小構成は次のとおりです。
@Configuration
@EnableWebFluxSecurity
public class MyMinimalSecurityConfiguration {

    @Bean
    public MapReactiveUserDetailsService userDetailsService() {
         UserDetails user = User.withDefaultPasswordEncoder()
              .username("user")
              .password("password")
              .roles("USER")
              .build();
         return new MapReactiveUserDetailsService(user);
    }
}
以下は最小構成と同じですが、明示的に ServerHttpSecurity を宣言しています。
@Configuration
@EnableWebFluxSecurity
public class MyExplicitSecurityConfiguration {
    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
         http
              .authorizeExchange()
                   .anyExchange().authenticated()
                        .and()
                   .httpBasic().and()
                   .formLogin();
         return http.build();
    }

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