Browse Source

start adding swagger auth documentation

tags/v1.4.37
Jonathan Cobb 3 years ago
parent
commit
bfc861d59a
5 changed files with 47 additions and 3 deletions
  1. +6
    -0
      bubble-server/pom.xml
  2. +1
    -1
      bubble-server/src/main/java/bubble/auth/BubbleAuthFilter.java
  3. +38
    -0
      bubble-server/src/main/java/bubble/resources/account/MeResource.java
  4. +1
    -1
      bubble-web
  5. +1
    -1
      utils/cobbzilla-wizard

+ 6
- 0
bubble-server/pom.xml View File

@@ -301,6 +301,12 @@
<version>1.0.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.1.5</version>
</dependency>
</dependencies>

<build>


+ 1
- 1
bubble-server/src/main/java/bubble/auth/BubbleAuthFilter.java View File

@@ -49,7 +49,7 @@ public class BubbleAuthFilter extends AuthFilter<Account> {
@Autowired @Getter private BubbleAuthProvider authProvider;
@Autowired @Getter private BubbleConfiguration configuration;

@Override protected String getAuthTokenHeader() { return SESSION_HEADER; }
@Override public String getAuthTokenHeader() { return SESSION_HEADER; }

@Override protected Set<String> getSkipAuthPaths() {
if (configuration.testMode()) return SKIP_AUTH_TEST;


+ 38
- 0
bubble-server/src/main/java/bubble/resources/account/MeResource.java View File

@@ -34,6 +34,8 @@ import bubble.service.boot.StandardSelfNodeService;
import bubble.service.cloud.NodeLaunchMonitor;
import bubble.service.upgrade.BubbleJarUpgradeService;
import com.fasterxml.jackson.databind.JsonNode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import lombok.Cleanup;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
@@ -76,6 +78,7 @@ import static org.cobbzilla.util.http.HttpContentTypes.*;
import static org.cobbzilla.util.json.JsonUtil.json;
import static org.cobbzilla.wizard.resources.ResourceUtil.*;
import static org.cobbzilla.wizard.server.RestServerBase.reportError;
import static org.cobbzilla.wizard.server.config.OpenApiConfiguration.SEC_API_KEY;

@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
@@ -92,6 +95,7 @@ public class MeResource {
@Autowired private AccountMessageDAO messageDAO;

@GET
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response me(@Context ContainerRequest ctx) {
try {
final Account account = userPrincipal(ctx);
@@ -109,12 +113,14 @@ public class MeResource {
}

@GET @Path(EP_LOCALE)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response getLocale(@Context ContainerRequest ctx) {
final Account account = userPrincipal(ctx);
return ok(account.getLocale());
}

@POST @Path(EP_LOCALE+"/{locale}")
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response setLocale(@Context ContainerRequest ctx,
@PathParam("locale") String locale) {
final Account account = userPrincipal(ctx);
@@ -147,6 +153,7 @@ public class MeResource {
public Response errorApi(@Context Request req) { return ok(getErrorApi()); }

@POST @Path(EP_CHANGE_PASSWORD)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response changePassword(@Context Request req,
@Context ContainerRequest ctx,
ChangePasswordRequest request) {
@@ -199,6 +206,7 @@ public class MeResource {
@Autowired private StandardAccountMessageService messageService;

@POST @Path(EP_APPROVE+"/{token}")
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response approve(@Context Request req,
@Context ContainerRequest ctx,
@PathParam("token") String token) {
@@ -215,6 +223,7 @@ public class MeResource {
}

@POST @Path(EP_DENY+"/{token}")
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response deny(@Context Request req,
@Context ContainerRequest ctx,
@PathParam("token") String token) {
@@ -225,6 +234,7 @@ public class MeResource {
}

@POST @Path(EP_DOWNLOAD)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response requestDownloadAccountData(@Context Request req,
@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
@@ -238,6 +248,7 @@ public class MeResource {
}

@POST @Path(EP_DOWNLOAD+"/{uuid}")
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response downloadAccountData(@Context Request req,
@Context ContainerRequest ctx,
@PathParam("uuid") String uuid) {
@@ -248,6 +259,7 @@ public class MeResource {
}

@POST @Path(EP_SCRIPT) @Produces(TEXT_PLAIN)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response runScript(@Context ContainerRequest ctx,
JsonNode script) {
final Account caller = userPrincipal(ctx);
@@ -270,120 +282,140 @@ public class MeResource {
}

@Path(EP_APPS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public AppsResource getApps(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(AppsResource.class, caller);
}

@Path(EP_DRIVERS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public DriversResource getDrivers(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(DriversResource.class, caller);
}

@Path(EP_NODES)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public NodesResource getNodes(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(NodesResource.class, caller);
}

@Path(EP_CLOUDS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public CloudServicesResource getClouds(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(CloudServicesResource.class, caller);
}

@Path(EP_REGIONS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public CloudServiceRegionsResource getCloudRegions(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(CloudServiceRegionsResource.class, caller);
}

@Path(EP_DOMAINS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public DomainsResource getDomains(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(DomainsResource.class, caller);
}

@Path(EP_NETWORKS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public NetworksResource getNetworks(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(NetworksResource.class, caller);
}

@Path(EP_SENT_NOTIFICATIONS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public SentNotificationsResource getSentNotificationsResource(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(SentNotificationsResource.class, caller);
}

@Path(EP_RECEIVED_NOTIFICATIONS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public ReceivedNotificationsResource getReceivedNotificationsResource(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(ReceivedNotificationsResource.class, caller);
}

@Path(EP_PLANS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public AccountPlansResource getAllPlans(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(AccountPlansResource.class, caller);
}

@Path(EP_CURRENT_PLANS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public CurrentAccountPlansResource getCurrentPlans(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(CurrentAccountPlansResource.class, caller);
}

@Path(EP_KEYS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public AccountSshKeysResource getSshKeys(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(AccountSshKeysResource.class, caller);
}

@Path(EP_PAYMENT_METHODS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public AccountPaymentMethodsResource getAccountPaymentMethods(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(AccountPaymentMethodsResource.class, caller);
}

@Path(EP_BILLS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public BillsResource getBills(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(BillsResource.class, caller);
}

@Path(EP_PAYMENTS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public AccountPaymentsResource getPayments(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(AccountPaymentsResource.class, caller);
}

@Path(EP_FOOTPRINTS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public FootprintsResource getFootprints(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(FootprintsResource.class, caller);
}

@Path(EP_DEVICES)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public DevicesResource getDevices(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(DevicesResource.class, caller);
}

@Path(EP_DEVICE_TYPES)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public DeviceTypesResource getDeviceTypes(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(DeviceTypesResource.class, caller);
}

@Path(EP_FLEX_ROUTERS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public FlexRoutersResource getFlexRouters(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(FlexRoutersResource.class, caller);
}

@Path(EP_REFERRAL_CODES)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public ReferralCodesResource getReferralCodes(@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
return configuration.subResource(ReferralCodesResource.class, caller);
@@ -392,6 +424,7 @@ public class MeResource {
@Autowired private NodeLaunchMonitor launchMonitor;

@GET @Path(EP_STATUS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response listLaunchStatuses(@Context Request req,
@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
@@ -399,6 +432,7 @@ public class MeResource {
}

@Path(EP_PACKER)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public PackerResource getPackerResource(@Context Request req,
@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
@@ -406,6 +440,7 @@ public class MeResource {
}

@Path(EP_PROMOTIONS)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public AccountPromotionsResource getPromotionsResource(@Context Request req,
@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
@@ -416,6 +451,7 @@ public class MeResource {

@POST @Path(EP_MODEL)
@Consumes(MULTIPART_FORM_DATA)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response uploadModel(@Context Request req,
@Context ContainerRequest ctx,
@FormDataParam("file") InputStream in,
@@ -441,6 +477,7 @@ public class MeResource {
private static final long UPGRADE_CHECK_INTERVAL = MINUTES.toMillis(5);

@GET @Path(EP_UPGRADE)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response checkForUpgrade(@Context Request req,
@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);
@@ -458,6 +495,7 @@ public class MeResource {
}

@POST @Path(EP_UPGRADE)
@Operation(security=@SecurityRequirement(name=SEC_API_KEY))
public Response upgrade(@Context Request req,
@Context ContainerRequest ctx) {
final Account caller = userPrincipal(ctx);


+ 1
- 1
bubble-web

@@ -1 +1 @@
Subproject commit 3aa2c918c6a7ffc37a26d5b6fab161524c667db5
Subproject commit 1bdf0a6043b03184ccbe49ed89582674b400a756

+ 1
- 1
utils/cobbzilla-wizard

@@ -1 +1 @@
Subproject commit 8da076b3a54a1af1d9d4efceace3b9c832b8d5dc
Subproject commit 2aab787e763f58a84ce7feef576d375476020ad6

Loading…
Cancel
Save