Quarkus OpenApi 将 x-tokenName 扩展添加到 application.properties 中的 SecurityScheme
我想使用 application.properties 文件将 x-tokenName 扩展添加到 quarkus 中的 openApi 安全方案组件中。我使用微软作为 openIdConnect 的提供者,因此我收到了包含 access_token 和 id_token 的响应。
到目前为止,我的配置看起来像这样:
quarkus.smallrye-openapi.security-scheme=oidc
quarkus.smallrye-openapi.security-scheme-name=OpenId
quarkus.smallrye-openapi.oidc-open-id-connect-url=https://login.microsoftonline.com/${TENANT_ID}/v2.0/.well-known/openid-configuration
相应的 openapi.yaml 查找如下所示的安全方案部分:
components:
securitySchemes:
OpenId:
type: openIdConnect
description: Authentication
openIdConnectUrl: https://login.microsoftonline.com/xxxxxxxxxx/v2.0/.well-known/openid-configuration
我没有找到任何可能性,添加具有如下属性(或类似)的 x-tokenName:
quarkus.smallrye-openapi.security-scheme-extension=tokenName:id_token
来实现相应的 openapi .yaml 像这样:
components:
securitySchemes:
OpenId:
type: openIdConnect
description: Authentication
openIdConnectUrl: https://login.microsoftonline.com/xxxxxxxxxx/v2.0/.well-known/openid-configuration
x-tokenName: id_token
据我所知,这些扩展是 openApi 的一部分并且应该可以工作。或者我错过了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过配置(目前)无法将 x-* 添加到安全模型。但我认为这是一个可以请求的有效功能,因此请在问题中这样做。
您现在可以做的是创建自己的过滤器(这就是它的全部内容)。
请参阅 https://download.eclipse .org/microprofile/microprofile-open-api-1.0/microprofile-openapi-spec.html#_oasfilter
Quarkus 中当前的过滤器:https://github.com/quarkusio/quarkus/blob/main/extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/filter/SecurityConfigFilter.java
Adding x-* to the security model is not possible with config (at the moment). But I think that would be a valid feature to request, so please do so in the issues.
What you can do for now is to create your own Filter (that is all that it is under the covers).
See https://download.eclipse.org/microprofile/microprofile-open-api-1.0/microprofile-openapi-spec.html#_oasfilter
And the current filter in Quarkus: https://github.com/quarkusio/quarkus/blob/main/extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/filter/SecurityConfigFilter.java