Quarkus Swagger-UI 授权

Urr*_*rr4 8 java swagger-ui bearer-token quarkus

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

Har*_*oon 7

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

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