Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

package gov.va.vamf.scheduling.varutility.config;

import gov.va.vamf.scheduling.varutility.utils.SwaggerProperties;
import gov.va.vamf.scheduling.varutility.utils.VarUtilityConstants;
import io.swagger.annotations.SwaggerDefinition;
import io.swagger.jaxrs.Reader;
import io.swagger.jaxrs.config.ReaderListener;
import io.swagger.models.Info;
import io.swagger.models.Swagger;
import io.swagger.models.auth.ApiKeyAuthDefinition;
import io.swagger.models.auth.In;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import javax.ws.rs.Path;

@SwaggerDefinition(
schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS}
)
@Path("ignore-used-for-swagger")
@Component
public class ApplicationSwaggerConfig implements ReaderListener, ApplicationContextAware {

private static ApplicationContext context;

@Override
public void beforeScan(Reader reader, Swagger swagger) {
}

@Override
public void afterScan(Reader reader, Swagger swagger) {
ApplicationContext context = ApplicationSwaggerConfig.getAppContext();
SwaggerProperties swaggerProperties = (SwaggerProperties)context.getBean("swaggerProperties");
swagger.info(new Info()
.description(swaggerProperties.getDescription())
.title(swaggerProperties.getTitle())
.version(swaggerProperties.getVersion()))
.basePath(swaggerProperties.getBasePath())
.securityDefinition(VarUtilityConstants.RESOURCE_JWT_SECURITY_NAME, new ApiKeyAuthDefinition("authorization", In.HEADER))
.securityDefinition(VarUtilityConstants.RBAC_JWT_SECURITY_NAME, new ApiKeyAuthDefinition("authorization", In.HEADER));
}

@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}

private static ApplicationContext getAppContext() {
return context;
}
}