1.导入swagger依赖
这里使用的是springfox-boot-starter,同时导入knife4j插件(不导入也行,导入可以方便接口调试)。
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></dependency>
接下来编写swagger配置类
@Configuration@EnableOpenApi@EnableKnife4jpublicclassKnife4jConfig{@BeanpublicDocketdefaultApi2(){returnnewDocket(DocumentationType.OAS_30).apiInfo(apiInfo())//分组名称// .groupName("2.X版本").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("")).paths(PathSelectors.any()).build().securitySchemes(securitySchemes()).securityContexts(securityContexts());}privateApiInfoapiInfo(){returnnewApiInfoBuilder().title("项目名称").version("1.0").build();}privateList<SecurityScheme>securitySchemes(){List<SecurityScheme> securitySchemeList =newArrayList<>();
securitySchemeList.add(newHttpAuthenticationScheme("Authorization","JWT授权(数据将在请求头中进行传递)直接在下面框中输入token","http","Bearer","JWT",newArrayList<>()));return securitySchemeList;}//过滤不需要进行验证的页面privateList<SecurityContext>securityContexts(){List<SecurityContext> securityContexts =newArrayList<>();
securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth())//这些接口不用提供token即可访问。.forPaths(PathSelectors.regex("^(?!/employee/login).*$")).forPaths(PathSelectors.regex("^(?!/identifyImageBase64).*$")).build());return securityContexts;}//全局的token配置privateList<SecurityReference>defaultAuth(){List<SecurityReference> securityReferences =newArrayList<>();
securityReferences.add(newSecurityReference("Authorization",newAuthorizationScope[0]));return securityReferences;}}
在swagger文档中效果如下
在/swagger-ui/index.html#/中可以全局配置token,并自动过滤不需要token的接口
在knife4j文档中也可以实现配置全局token
结束。
标签:
安全
本文转载自: https://blog.csdn.net/weixin_61607152/article/details/135827678
版权归原作者 weixin_61607152 所有, 如有侵权,请联系我们删除。
版权归原作者 weixin_61607152 所有, 如有侵权,请联系我们删除。