2020
2121import de .rwth .idsg .steve .SteveConfiguration ;
2222import de .rwth .idsg .steve .SteveProdCondition ;
23+ import io .swagger .v3 .oas .models .Components ;
2324import io .swagger .v3 .oas .models .OpenAPI ;
2425import io .swagger .v3 .oas .models .info .Info ;
2526import io .swagger .v3 .oas .models .info .License ;
27+ import io .swagger .v3 .oas .models .security .SecurityRequirement ;
28+ import io .swagger .v3 .oas .models .security .SecurityScheme ;
2629import org .springdoc .core .configuration .SpringDocConfiguration ;
2730import org .springdoc .core .properties .SwaggerUiConfigProperties ;
2831import org .springdoc .core .properties .SwaggerUiOAuthProperties ;
@@ -66,6 +69,13 @@ public class ApiDocsConfiguration {
6669 public OpenAPI apiDocs () {
6770 String title = "SteVe REST API Documentation" ;
6871
72+ String securityName = SteveConfiguration .CONFIG .getWebApi ().getHeaderKey ();
73+
74+ SecurityScheme securityScheme = new SecurityScheme ()
75+ .type (SecurityScheme .Type .APIKEY )
76+ .in (SecurityScheme .In .HEADER )
77+ .name (securityName );
78+
6979 return new OpenAPI ()
7080 .info (new Info ()
7181 .title (title )
@@ -75,6 +85,10 @@ public OpenAPI apiDocs() {
7585 .url ("https://github.com/steve-community/steve/blob/master/LICENSE.txt" )
7686 )
7787 .version (SteveConfiguration .CONFIG .getSteveVersion ())
78- );
88+ )
89+ // define a security schema
90+ .components (new Components ().addSecuritySchemes (securityName , securityScheme ))
91+ // and activate it for all endpoints
92+ .addSecurityItem (new SecurityRequirement ().addList (securityName ));
7993 }
8094}
0 commit comments