我在我的项目中使用springdoc version 1.4.3
和springdoc-security version 1.4.3
,spring boot
和spring security
具有以下springdoc配置,我可以访问swagger-ui.html,但当我授权(通过swagger-ui输入令牌(并试图从我的rest控制器获得响应时,我的访问一直被拒绝。
@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(); }
卷曲看起来如何从招摇ui:
curl -X GET "http://localhost:8080/api/v1/users" -H "accept: */*" -H "Authorization: Bearer eyJ..."
从邮递员那里打我的控制器是有效的,但使用swagger ui不起作用,我的要求是从后者那里得到它。
您应该检查来自swagger ui的http请求。
确保swagger ui正在发送授权头承载。