Quarkus Swagger-UI授权

Quarkus Swagger-UI Authorization

我目前正在使用 quarkus-smallrye-openapi 提供的 Quarkus 和 Swagger-UI。 我们有来自 Azure AD 的 OIDC 作为安全性,Swagger-UI 目前不支持它(请参阅 Swagger-Docs),因此我无法将“真实”授权添加到 swagger。 这意味着,我不能使用 Swagger,因为我的端点至少受到 @RolesAllowed 的保护。 我们有一个端点来获取模拟安全令牌,但我不知道如何告诉 swagger 获取此令牌。 基本上我想告诉 swagger-ui “在这里,我有这个令牌,将它作为 Authorization: Bearer XXX 添加到所有请求中”,但我不知道如何在 Quarkus 中做到这一点。

  1. 注册安全方案
@Path("/sample")
@SecuritySchemes(value = {
        @SecurityScheme(securitySchemeName = "apiKey", 
                        type = SecuritySchemeType.HTTP,
                        scheme = "Bearer")}
)
public class SampleResource {
  1. 用已注册的方案名称标记操作的安全要求ui评论。
    @GET
    @SecurityRequirement(name = "apiKey")
    String hello() {
  1. 授权选项现在应该可以在 swagger 页面上使用了。在此处输入您的模拟 api 密钥。

  2. 从 swagger 触发服务 ui。您现在可以在请求中看到 Authorization: Bearer <VALUE> header 设置。