28.2 WebFlux Security
与Spring MVC应用程序类似,您可以通过添加Spring-boot-starter-security
依赖项来保护WebFlux应用程序.默认的安全配置在ReactiveSecurityAutoConfiguration
和UserDetailsServiceAutoConfiguration
中实现.
ReactiveSecurityAutoConfiguration
为web安全性导入WebFluxSecurityConfiguration
,UserDetailsServiceAutoConfiguration
配置身份验证,这也与非web应用程序相关.要完全关闭默认的web应用程序安全配置,您可以添加WebFilterChainProxy
类型的Bean实例(这样做不会禁用UserDetailsService
配置或Actuator(执行器)的安全性).
为了也关掉UserDetailsService
配置,您可以添加一个ReactiveUserDetailsService
类型的Bean实例或ReactiveAuthenticationManager
.
可以通过添加自定义的SecurityWebFilterChain
来配置访问规则.Spring Boot提供了便利的方式来覆盖actuator(执行器)的端点和静态资源的访问规则.EndpointRequest
可以用来创建一个基于management.endpoints.web.base-path
属性值得ServerWebExchangeMatcher
.
PathRequest
可以用来创建一个常用路径下的资源使用的ServerWebExchangeMatcher
.
例如,您可以通过添加以下类似配置定制您的安全配置:
@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
return http.authorizeExchange()
.matchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.pathMatchers("/foo", "/bar")
.authenticated().and()
.formLogin().and()
.build();
}