Search code examples
javaspringswagger-uiopenapispringdoc

Enable Authorize button in springdoc-openapi-ui for Basic Authentication


How to enable "Authorize" button in springdoc-openapi-ui (OpenAPI 3.0 /swagger-ui.html) for Basic Authentication.

What annotations have to be added to Spring @Controller and @Configuration classes?

Authorize button

Authorize form for Basic Authentication


Solution

  • Define a global security scheme for OpenAPI 3.0 using annotation @io.swagger.v3.oas.annotations.security.SecurityScheme in a @Configuration bean:

    @Configuration
    @OpenAPIDefinition(info = @Info(title = "My API", version = "v1"))
    @SecurityScheme(
        name = "basicAuth",
        type = SecuritySchemeType.HTTP,
        scheme = "basic"
    )
    public class OpenApi30Config {
    
    }
    

    Annotate @RestController with @SecurityRequirement(name = "basicAuth")

    @RestController
    @SecurityRequirement(name = "basicAuth")
    public class Controller {}
    

    OR

    Annotate each @RestController method requiring Basic Authentication with @io.swagger.v3.oas.annotations.Operation referencing the defined security scheme:

    @Operation(summary = "My endpoint", security = @SecurityRequirement(name = "basicAuth"))