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.
例如,您可以通过添加以下类似配置定制您的安全配置:
@Beanpublic SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {return http.authorizeExchange().matchers(PathRequest.toStaticResources().atCommonLocations()).permitAll().pathMatchers("/foo", "/bar").authenticated().and().formLogin().and().build();}
