Autorisation Quarkus Swagger-UI

Oct 01 2020

Je travaille actuellement avec Quarkus et Swagger-UI tels que fournis par quarkus-smallrye-openapi. Nous avons OIDC d'Azure AD comme sécurité, qui n'est actuellement pas pris en charge par Swagger-UI (voir Swagger-Docs ), donc je ne peux pas ajouter la "vraie" autorisation à swagger. Cela signifie que je ne peux pas utiliser Swagger car mes points de terminaison sont au moins sécurisés avec @RolesAllowed. Nous avons un point de terminaison pour récupérer un jeton de sécurité simulé, mais je ne sais pas comment dire à Swagger de prendre ce jeton. En gros, je veux dire à swagger-ui "Ici, j'ai ce jeton, ajoutez-le Authorization: Bearer XXXà toutes les demandes", mais je ne sais pas comment faire cela dans Quarkus.

Réponses

7 Haroon Oct 06 2020 at 12:18
  1. Enregistrer le schéma de sécurité
@Path("/sample")
@SecuritySchemes(value = {
        @SecurityScheme(securitySchemeName = "apiKey", 
                        type = SecuritySchemeType.HTTP,
                        scheme = "Bearer")}
)
public class SampleResource {
  1. Marquez l'exigence de sécurité de l'opération avec le nom du schéma enregistré.
    @GET
    @SecurityRequirement(name = "apiKey")
    String hello() {
  1. L'option Autoriser devrait maintenant être disponible sur la page swagger. Entrez votre clé API fictive ici.

  2. Déclenchez le service à partir de swagger ui. Vous pouvez maintenant voir l'en- Authorization: Bearer <VALUE>tête défini dans la requête.