QuarkusSwagger-UI認証

Oct 01 2020

私は現在、quarkus-smallrye-openapiによって提供されるQuarkusおよびSwagger-UIを使用しています。セキュリティとしてAzureADのOIDCがありますが、これは現在Swagger-UIでサポートされていないため(Swagger-Docsを参照)、Swaggerに「実際の」認証を追加することはできません。つまり、エンドポイントは少なくともで保護されているため、Swaggerを使用できません@RolesAllowed。モックセキュリティトークンをフェッチするエンドポイントがありますが、swaggerにこのトークンを取得するように指示する方法がわかりません。基本的にはswagger-uiに「ここにこのトークンがあり、Authorization: Bearer XXXすべてのリクエストに追加します」と伝えたいのですが、Quarkusでそれを行う方法がわかりません。

回答

7 Haroon Oct 06 2020 at 12:18
  1. セキュリティスキームを登録する
@Path("/sample")
@SecuritySchemes(value = {
        @SecurityScheme(securitySchemeName = "apiKey", 
                        type = SecuritySchemeType.HTTP,
                        scheme = "Bearer")}
)
public class SampleResource {
  1. 登録されたスキーム名で操作のセキュリティ要件をマークします。
    @GET
    @SecurityRequirement(name = "apiKey")
    String hello() {
  1. 承認オプションがSwaggerページで利用できるようになりました。ここにモックAPIキーを入力します。

  2. SwaggerUIからサービスをトリガーします。これでAuthorization: Bearer <VALUE>、リクエストにヘッダーセットが表示されます。