问题:swagger上配置全局token,防止每次try out都须要在header中填token的内容
解决:
1.配置swagger
增加pom坐标
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
减少swagger的配置类,加上注解@Configuration@EnableSwagger2增加bean @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2)// .host("114.247.181.27:8888") .apiInfo(apiInfo()) .select()// 指定controller所在包门路 .apis(RequestHandlerSelectors.basePackage("com.screen.controller")) .paths(PathSelectors.any())// .build(); .build()// 平安上下文.securityContexts(Arrays.asList(securityContexts())) .securitySchemes(unifiedAuth()); }#配置swagger上文档信息 private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("服务端Api接口文档") .description("服务端所有接口文档在此保护") .termsOfServiceUrl("") .version("2.2.0") .build(); }
2.增加配置全局token
private static List<ApiKey> unifiedAuth() { List<ApiKey> arrayList = new ArrayList(); arrayList.add(new ApiKey("Authorization", "Authorization", "header")); return arrayList; } private SecurityContext securityContexts() { return SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.any()) .build(); } private List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "形容信息"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; return Arrays.asList(new SecurityReference("Authorization", authorizationScopes)); }
3.配置完的token增加