首页 > 解决方案 > OpenAPI 3 MicroProfile,在@OpenApiDefinition 中使用@SecurityRequirementSet

问题描述

我正在将 OpenAPI v2 切换到 Open API 3,我们将使用带有 Projects 的 MicroProfile 2.0 作为从代码生成 OAS 的插件。

现在,作为一种授权,我们需要不同的标头。我知道我可以将它们放在每个资源上,这似乎只是很多重复,所以我认为将JaxRSConfiguration文件作为 a@SecurityScheme放入并将它们作为安全性添加到@OpenApiDefinition.

@OpenAPIDefinition(
    info = @Info(
            ...
           )
    ),
    security = {
       @SecurityRequirement(name = Header1),
       @SecurityRequirement(name = Header2)
    },
    components = @Components(
             securitySchemes = {
                    @SecurityScheme(  apiKeyName = Header1 ... ) ,
                    @SecurityScheme(  apiKeyName = Header2 ....) 
    }),
    ...
)

这是有效的,但是它会生成一个 OR,而它应该是一个 AND(没有 - )

security:
  - Header1: []
  - Header2: []

我以为我可以在 中使用@SecurityRequirementsSet内部安全性@OpenApiDefinition,但不幸的是这是不允许的。我知道我可以在每次调用或在不同调用的类之上使用它,但由于这仍然是一种重复,我更愿意将它作为一般的身份验证安全性。

有谁知道我怎么能做到这一点?

标签: openapimicroprofile

解决方案


推荐阅读