OpenAPI规范说明:
当在OpenAPI对象或操作对象上定义了安全需求对象列表时,只需满足列表中一个安全需求对象即可授权请求。
提供的示例如下:
security: # A AND B
- A
B
如何使用Swagger Java注释做到这一点?
我试着
@SecurityRequirement(name = "A")
@SecurityRequirement(name = "B")
也@SecurityRequirements(value = [SecurityRequirement(name = "A"),
SecurityRequirement(name = "B")] )
但两者都产生:
security: # A OR B
- A
- B
看起来没有办法使用Swagger Java注释来表达。以下是GitHub上的相关问题/增强请求:
- [增强]需要多个安全方案(全部,而不是部分)
- 带有AND条件的多个安全需求注释
作为一种解决方案,您可以对生成的OpenAPI文件进行后处理(例如使用yq
或jq
等工具),并根据需要添加/修复security
部分。