28.2 WebFlux安全

类似于Spring MVC应用,你可以通过添加spring-boot-starter-security依赖,保护你的WebFlux应用。默认的安全配置由ReactiveSecurityAutoConfiguration以及从其它地方导入的类(WebFluxSecurityConfiguration用于web安全,ReactiveAuthenticationManagerConfiguration用于认证配置,也与非web应用相关)实现的。你可以添加一个WebFilterChainProxy类型的bean,来彻底关掉默认的web应用安全配置(这样做不会禁用认证管理者配置或者Actuator的安全)。

为了关闭认证管理者配置,你可以添加ReactiveUserDetailsService或是ReactiveAuthenticationManager类型的bean。

访问规则可以通过添加自定义的SecurityWebFilterChain配置。Spring Boot提供了便捷的方法。它们可以用来覆盖执行器端点和静态资源的访问规则。EndpointRequest可以用来创建基于management.endpoints.web.base-path属性的ServerWebExchangeMatcher

PathRequest可以用来创建常用位置上的资源的ServerWebExchangeMatcher

例如,你可以添加如下代码,自定义你的安全配置:

@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
    http
        .authorizeExchange()
            .matchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
            .pathMatchers("/foo", "/bar")
                .authenticated().and()
            .formLogin();
    return http.build();
}

最后更新于