package eu.dnetlib.dnetrolemanagement.config.security; import eu.dnetlib.dnetrolemanagement.config.properties.APIProperties; import eu.dnetlib.dnetrolemanagement.config.properties.RedisProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; 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 @EnableSwagger2 public class SwaggerConfig { private final Logger logger = LoggerFactory.getLogger(SwaggerConfig.class); private final APIProperties apiProperties; @Autowired public SwaggerConfig(APIProperties apiProperties) { this.apiProperties = apiProperties; } @Bean public Docket createRestApi() { 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() { return new ApiInfoBuilder() .title(this.apiProperties.getTitle()) .description(this.apiProperties.getDescription()) .version(this.apiProperties.getVersion()) .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); } }