Spring Security spring Boot 3如何指定多个请求匹配器

dly7yett  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(191)

我正在使用Spring Security,我想知道如何添加多个请求匹配器,一个用于“auth /”(应该允许匿名请求)和“prod /”(只有在经过身份验证时才允许)。

@Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception
    {
        return http
            .csrf(csrf -> 
                csrf
                .disable())
            .authorizeHttpRequests((authRequest) ->{
              authRequest
                .requestMatchers("/auth/**").permitAll()
                .anyRequest().anonymous();
              authRequest.anyRequest().authenticated();
            }
                )
            .sessionManagement(sessionManager->
                sessionManager 
                  .sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .authenticationProvider(authProvider)
            .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)
            .build();
            
            
    }

字符串

pieyvz9o

pieyvz9o1#

关于你的问题,你必须重写SecurityFilterChain的这一部分,以满足你想要实现的目标。

…
    .authorizeHttpRequests((authRequest) ->{
                  authRequest
                    .requestMatchers("/auth/**").permitAll()
                    .anyRequest().authenticated();
                }
                    )
…

字符串
为了更详细地了解它是如何工作的,以及为什么它应该这样,所以我真的建议检查/阅读documentation部分,也是一个很好的建议,你是通过所有的文档,因为它是最好的方式来理解。

相关问题