首页天道酬勤swagger2.9.2token设置无效

swagger2.9.2token设置无效

admin 08-13 19:31 200次浏览

更改了包的版本后需要更改 SwaggerConfig.java 文件
原来的代码

import io.swagger.annotations.ApiOperation;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.ApiKey;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.List;import static com.google.common.collect.Lists.newArrayList;@Configuration@EnableSwagger2public class SwaggerConfig implements WebMvcConfigurer { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //加了ApiOperation注解的类,才生成接口文档 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //包下的类,才生成接口文档 .paths(PathSelectors.any()) .build() .securitySchemes(security()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("开单") .version("1.0.0") .build(); } private List<ApiKey> security() { return newArrayList( new ApiKey("token", "token", "header") ); }}

更改后的

import io.swagger.annotations.ApiOperation;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.ApiKey;import springfox.documentation.service.AuthorizationScope;import springfox.documentation.service.SecurityReference;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spi.service.contexts.SecurityContext;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;import java.util.List;import static com.google.common.collect.Lists.newArrayList;@Configuration@EnableSwagger2public class SwaggerConfig implements WebMvcConfigurer { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //加了ApiOperation注解的类,才生成接口文档 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //包下的类,才生成接口文档 .paths(PathSelectors.any()) .build() .securitySchemes(security()) .securityContexts(securityContexts()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("开单") .version("1.0.0") .build(); } private List<ApiKey> security() { return newArrayList( new ApiKey("token", "token", "header") ); } private List<SecurityContext> securityContexts() { List<SecurityContext> securityContexts = new ArrayList<>(); securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth()) //过滤要验证的路径 .forPaths(PathSelectors.regex("^(?!auth).*$")) .build()); return securityContexts; } //增加全局认证 List<SecurityReference> defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; List<SecurityReference> securityReferences = new ArrayList<>(); //验证增加(有许多教程说明中这个地方是Authorization,导致不能带入全局token,因为securitySchemes()方法中header写入token,所以这个地方我改为token就可以了) securityReferences.add(new SecurityReference("token", authorizationScopes)); return securityReferences; }} swagger报错 java.lang.NumberFormatException: For input string: “” java.lang.NumberFormatException: For input string: ""at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_171]at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_171]at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_171]at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]at sun.reflect.GeneratedMethodAccessor137.invoke(Unknown Source) ~[na:na]at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]at com.fasterxml.mtdcg.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:664) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:689) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]at com.fasterxml.mtdcg.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) [mtdcg-databind-2.8.11.2.jar:2.8.11.2]

在application 文件中加入

logging: level: io.swagger.models.parameters.AbstractSerializableParameter: error

java身份证合法性校验工具类实例代码OpenCV连通域数量统计实例分析Mybatis泛型擦除问题如何解决spring boot 项目中使用thymeleaf模板的案例分析
登录token无效的解决方法,安全验证片解决方法 jwt token设置过期时间,jwt无状态怎么刷新token
相关内容