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);
}
}