如何在基于Spring的反应式应用程序中从身份验证中排除路径?

时间:2018-09-05 06:35:37

标签: spring security reactor

在非反应性spring应用程序中,我通常会创建一个配置类,扩展WebSecurityConfigurerAdapter并像这样配置WebSecurity

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/pathToIgnore");
}

如何在反应式应用程序中做到这一点?

1 个答案:

答案 0 :(得分:2)

在用@EnableWebFluxSecurity@EnableReactiveMethodSecurity注释的安全配置类中,按如下所示注册Bean:

@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
    return http.authorizeExchange()
        .pathMatchers("/pathToIgnore")
        .permitAll()
        .anyExchange()
        .authenticated()
        .and()
        .formLogin()
        .and()
        .csrf()
        .disable()
        .build();
}

在此配置中,pathMatchers("/pathToIgnore").permitAll()将其配置为允许从auth中排除匹配的路径,而anyExchange().authenticated()将其配置为对所有其他请求进行身份验证。