Quellcode durchsuchen

bump swagger version, document apikey auth

tags/2.0.1
Jonathan Cobb vor 3 Jahren
Ursprung
Commit
2aab787e76
4 geänderte Dateien mit 26 neuen und 12 gelöschten Zeilen
  1. +2
    -2
      wizard-server/pom.xml
  2. +1
    -1
      wizard-server/src/main/java/org/cobbzilla/wizard/filters/auth/AuthFilter.java
  3. +4
    -5
      wizard-server/src/main/java/org/cobbzilla/wizard/server/RestServerBase.java
  4. +19
    -4
      wizard-server/src/main/java/org/cobbzilla/wizard/server/config/OpenApiConfiguration.java

+ 2
- 2
wizard-server/pom.xml Datei anzeigen

@@ -281,12 +281,12 @@ This code is available under the Apache License, version 2: http://www.apache.or
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-jaxrs2</artifactId>
<version>2.1.2</version>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-integration</artifactId>
<version>2.1.2</version>
<version>2.1.5</version>
</dependency>

</dependencies>


+ 1
- 1
wizard-server/src/main/java/org/cobbzilla/wizard/filters/auth/AuthFilter.java Datei anzeigen

@@ -9,7 +9,7 @@ import static org.cobbzilla.wizard.resources.ResourceUtil.unauthorized;

public abstract class AuthFilter<T extends TokenPrincipal> implements ContainerRequestFilter {

protected abstract String getAuthTokenHeader();
public abstract String getAuthTokenHeader();
protected String getSubUserHeader() { return null; }
protected abstract Set<String> getSkipAuthPaths();
protected abstract Set<String> getSkipAuthPrefixes();


+ 4
- 5
wizard-server/src/main/java/org/cobbzilla/wizard/server/RestServerBase.java Datei anzeigen

@@ -182,6 +182,10 @@ public abstract class RestServerBase<C extends RestServerConfiguration> implemen
applicationContext = buildSpringApplicationContext();
configuration.setApplicationContext(applicationContext);

if (configuration.hasOpenApi()) {
configuration.getOpenApi().register(configuration, rc);
}

// set the IoC factory
rc.property("contextConfig", applicationContext);

@@ -299,11 +303,6 @@ public abstract class RestServerBase<C extends RestServerConfiguration> implemen
rc.register(new StreamingOutputProvider());
rc.register(MultiPartFeature.class);
// rc.register(new StringProvider());

if (configuration.hasOpenApi()) {
configuration.getOpenApi().register(configuration, rc);
}

return rc;
}



+ 19
- 4
wizard-server/src/main/java/org/cobbzilla/wizard/server/config/OpenApiConfiguration.java Datei anzeigen

@@ -3,16 +3,20 @@ package org.cobbzilla.wizard.server.config;
import com.github.jknack.handlebars.Handlebars;
import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource;
import io.swagger.v3.oas.integration.SwaggerConfiguration;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityScheme;
import io.swagger.v3.oas.models.servers.Server;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.map.SingletonMap;
import org.cobbzilla.util.handlebars.HandlebarsUtil;
import org.cobbzilla.util.handlebars.HasHandlebars;
import org.cobbzilla.wizard.filters.auth.AuthFilter;
import org.glassfish.jersey.server.ResourceConfig;

import java.util.*;
@@ -26,6 +30,7 @@ public class OpenApiConfiguration {

// set contactEmail to this value to disable OpenAPI
public static final String OPENAPI_DISABLED = "openapi_disabled";
public static final String SEC_API_KEY = "apiKey";

@Getter @Setter private String title;
@Getter @Setter private String description;
@@ -58,7 +63,6 @@ public class OpenApiConfiguration {
handlebars = null;
}

final OpenAPI oas = new OpenAPI();
final Info info = new Info()
.title(subst(title(configuration), handlebars, ctx, configuration))
.description(subst((empty(description) ? title(configuration) : description), handlebars, ctx, configuration))
@@ -70,10 +74,21 @@ public class OpenApiConfiguration {
.url(subst(licenseUrl, handlebars, ctx, configuration)))
.version((configuration.hasVersion() ? configuration.getVersion() : "(configuration.version was missing or empty)"));

oas.info(info);
final List<Server> servers = new ArrayList<>();
servers.add(new Server().url(configuration.getHttp().getBaseUri()));
oas.servers(servers);
servers.add(new Server()
.url(configuration.getHttp().getBaseUri()));

final AuthFilter authFilter = configuration.getBean(AuthFilter.class);
final SecurityScheme securityScheme = new SecurityScheme()
.type(SecurityScheme.Type.APIKEY)
.name(authFilter.getAuthTokenHeader())
.in(SecurityScheme.In.HEADER);

final OpenAPI oas = new OpenAPI()
.components(new Components().securitySchemes(new SingletonMap<>(SEC_API_KEY, securityScheme)))
.info(info)
.servers(servers);

final SwaggerConfiguration oasConfig = new SwaggerConfiguration()
.openAPI(oas)
.prettyPrint(true)


Laden…
Abbrechen
Speichern