package eu.dnetlib.dnetrolemanagement.config.security; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.Collections; import java.util.List; /** * Swagger configuration class */ @Configuration @Profile({"swagger"}) @EnableSwagger2 public class SwaggerConfig { private Logger logger = LoggerFactory.getLogger(SwaggerConfig.class); @Bean public Docket createRestApi() { logger.info("SwaggerConfig for Dnet Role Management"); return new Docket(DocumentationType.SWAGGER_2) .globalOperationParameters(globalParameterList()) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.dnetrolemanagement.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { logger.info("SwaggerConfig Dnet Role Management API information"); return new ApiInfoBuilder() .title("Dnet Role Management Document") // title .description("Api documentation") // description .version("1.0") // version .contact(new Contact("Konstantinos Triantafyllou", "https://code-repo.d4science.org/k.triantafyllou/dnet-role-management", "k.triantafyllou@di.uoa.gr")) // contact information .build(); } private List globalParameterList() { Parameter authTokenHeader = new ParameterBuilder() .name("Session") // name of the header .modelRef(new ModelRef("string")) // data-type of the header .required(false) .parameterType("header") .description("Session ID") .build(); return Collections.singletonList(authTokenHeader); } }