我在我的项目中使用并springdoc version 1.4.3
使用以下配置为我的 springdoc 我能够访问swagger-ui.html但是当我授权(通过 swagger-ui 输入令牌)并尝试从我的休息控制器获得响应时我不断被拒绝访问。springdoc-security version 1.4.3
spring boot
spring 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 不起作用,我的要求是从后者那里得到它。