アノテーション型 EnableWebFluxSecurity


  • @Retention(RUNTIME)
    @Target(TYPE)
    @Documented
    @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})
    @Configuration
    public @interface EnableWebFluxSecurity
    Spring Security WebFlux サポートを追加するには、このアノテーションを Configuration クラスに追加します。その後、ユーザーは 1 つ以上の ServerHttpSecurity Bean インスタンスを作成できます。最小構成は次のとおりです。
     @EnableWebFluxSecurity
     public class MyMinimalSecurityConfiguration {
    
         @Bean
         public MapReactiveUserDetailsService userDetailsService() {
              UserDetails user = User.withDefaultPasswordEncoder()
                   .username("user")
                   .password("password")
                   .roles("USER")
                   .build();
              return new MapReactiveUserDetailsService(user);
         }
     }
     
    以下は最小構成と同じですが、明示的に ServerHttpSecurity を宣言しています。
     @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