如何使用 OAuth2 允许 Spring Boot 3 或更高版本中的所有匿名访问?

问题描述 投票:0回答:0

为了保护我的 API,我使用 Spring Boot 3 以及 spring-boot-starter-oauth2-resource-server,更准确地说是 3.1.2。我尝试按照 mani 教程所述配置安全性。它非常类似于:

 @Bean
 public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        return http
                .csrf(AbstractHttpConfigurer::disable)
                .authorizeHttpRequests(auth -> auth
                                .requestMatchers("/swagger-ui**").anonymous()
                                .requestMatchers("/swagger-ui**").permitAll()


                )
                .oauth2ResourceServer(server -> server.jwt(Customizer.withDefaults()))
                ...
                .build();
    }

我真的补充了

@EnableWebSecurity

我还添加了 InMemoryUserDetailsManager 只是为了添加几个用户来尝试。我添加了 JwtEncoder 和 JwtDecoder 来处理“授权:承载...”标头。

虽然其中一些与授权和身份验证无关,但他们解释说它们是不同的,但他们从未解释过一种方法。我没有获得匿名访问权限。当我请求 localhost:8080/swagger-ui.html 时,我收到的只是来自 Spring 的一条消息“访问被拒绝”。如果我完全摆脱 Spring Security 和 Oauth2,我就可以获得访问权限。

spring spring-security anonymous
© www.soinside.com 2019 - 2024. All rights reserved.