SpringBoot安全配置授权所有请求并排除指定的URL模式不起作用

cbwuti44  于 2023-05-16  发布在  Spring
关注(0)|答案(1)|浏览(245)

我正在尝试在我的应用程序中默认验证所有端点,并在SpringBoot中使用以下安全配置排除特定的URL:

public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        return httpSecurity
                .csrf(csrf -> csrf.disable())
                .cors()
                .and() 
                .authorizeRequests()
                .antMatchers("/swagger**").permitAll()
                .antMatchers("/api-docs**").permitAll()
                .anyRequest().authenticated()
                .and()
                .userDetailsService(jpaUserDetailsService)
                .oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt)
                .httpBasic(Customizer.withDefaults())
                .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .build();
    }

这个配置似乎对我不起作用。当我尝试访问swagger和api-docs端点时,我得到401,这些端点被排除在身份验证之外。

kmpatx3s

kmpatx3s1#

尝试添加:

.requestMatchers(EndpointRequest.to(InfoEndpoint.class, "path")).permitAll()

之后

.antMatchers("/api-docs**").permitAll()

或更改您的

.antMatchers("/api-docs**").permitAll()

.antMatchers("/api-docs/**").permitAll()

相关问题