0

我在我的项目中使用并springdoc version 1.4.3使用以下配置为我的 springdoc 我能够访问swagger-ui.html但是当我授权(通过 swagger-ui 输入令牌)并尝试从我的休息控制器获得响应时我不断被拒绝访问。springdoc-security version 1.4.3spring bootspring security

@Configuration
public class SpringDocConfig {
    @Bean
    public OpenAPI CustomOpenAPI() {
        return new OpenAPI()
            .addSecurityItem(new SecurityRequirement().addList("bearAuth", Arrays.asList("read", "write")))
            .components(new Components()
                .addSecuritySchemes("bearer-key", new SecurityScheme()
                    .type(SecurityScheme.Type.HTTP)
                    .scheme("bearer").bearerFormat("JWT")
                    .in(SecurityScheme.In.HEADER)));
    }
}

这是我要击中的控制器

@GetMapping
@Operation(security = {@SecurityRequirement(name = "bearer-key")})
public List<UserEntity> getAll() { return userService.getAllUsers(); }

从 swagger-ui 看 curl 的样子:

curl -X GET "http://localhost:8080/api/v1/users" -H "accept: */*" -H "Authorization: Bearer eyJ..."

从邮递员那里打我的控制器是可行的,但使用 swagger-ui 不起作用,我的要求是从后者那里得到它。

4

1 回答 1

0

您应该检查来自 swagger-ui 的 http 请求。

确保 swagger-ui 正在发送 Authorization Header Bearer。

于 2020-08-02T13:04:09.980 回答