当前位置: 首页 > news >正文

Knife4j 2.2.X 版本 swagger彻底禁用

官方文档配置权限:https://doc.xiaominfo.com/v2/documentation/accessControl.html#_3-5-1-%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%B1%8F%E8%94%BD%E8%B5%84%E6%BA%90

通常有时候我们碰到的问题如下:
在开发Knife4j功能时,同很多开发者经常讨论的问题就是在生产环境时,屏蔽或者去除Swagger的文档很麻烦

系统部署生产环境时,我们想屏蔽Swagger的文档功能,不管是接口或者html文档
通常我们有时候需要生产环境部署后,又需要Swagger的文档调试功能,辅助开发者调试,但是存在安全隐患,没有对Swagger的资源接口过滤
等等
针对以上两种情况,Knife4j基于Servlet体系提供了过滤Filter功能,如果开发者使用Spring Boot开发框架进行开发的话,只需在application.properties或者application.yml配置文件中配置相关属性即可方便的解决上面的问题,不用删除Springfox-swagger的jar包或者删除相关代码等复杂的操作,提升开发体验。
当我们部署系统到生产系统,为了接口安全,需要屏蔽所有Swagger的相关资源。
在这里插入图片描述

项目的pom.xml中引入Knife4j的依赖包,代码如下:

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>2.0.9</version>
</dependency>

如果使用SpringBoot框架,只需在application.properties或者application.yml配置文件中配置

knife4j:# 开启增强配置 enable: true# 开启生产环境屏蔽production: true

配置此属性后,所有资源都会屏蔽输出.
在这里插入图片描述

后面发现禁用以后通过 依旧还能访问拿到json文件。 可能是个bug。

http://localhost:8080/v2/;/api-docs?group=2.X%E7%89%88%E6%9C%AC

后面发现只需要在配置类加上。.enable(false) 即可完全禁用。

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {@Bean(value = "defaultApi2")public Docket defaultApi2() {Docket docket=new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder()//.title("swagger-bootstrap-ui-demo RESTful APIs").description("# swagger-bootstrap-ui-demo RESTful APIs").termsOfServiceUrl("http://www.xx.com/").contact("xx@qq.com").version("1.0").build()).enable(false)//分组名称.groupName("2.X版本").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller")).paths(PathSelectors.any()).build();return docket;}
}

在这里插入图片描述

http://www.lryc.cn/news/388043.html

相关文章:

  • linux下mysql的定时备份
  • 【13】地址-比特币区块链的地址
  • 【数据结构】数据结构前置知识
  • 企业数据挖掘平台产品特色及合作案例介绍
  • C++初学者指南-3.自定义类型(第一部分)-基本自定义类型/类
  • iOS之如何创建.framework静态库
  • C程序设计谭浩强第五版
  • 石油化工厂为什么要用专业防爆手机?
  • 文本生成sql模型(PipableAI/pip-sql-1.3b)
  • 机器学习中的数学底蕴与设计模式
  • 【Android面试八股文】性能优化相关面试题:如何查找CPU占用?
  • 面试框架一些小结
  • c# 往window注册表写入数据后,未写入指定的路径
  • 树莓派4B_OpenCv学习笔记13:OpenCv颜色追踪_程序手动调试HSV色彩空间_检测圆
  • Golang | Leetcode Golang题解之第198题打家劫舍
  • 基于ruoyi-app的手机短信登录(uniapp)
  • 机器学习环境搭建
  • 2095.删除链表的中间节点
  • Qt QML 坑
  • Chrome浏览器web调试(js调试、css调试、篡改前置)
  • 【Java】Logbook优化接口调用日志输出,优雅!
  • LabVIEW电压电流实时监测系统
  • 骁龙相机拍照流程分析
  • sql-语句
  • 解决Vue3项目中跨域问题的步骤
  • macos scroll direction
  • Websocket实现方式二——注解方式
  • 零基础开始学习鸿蒙开发-页面导航栏布局设计
  • 【Hive中常见的优化手段----数据采集!Join 优化!Hive索引!数据倾斜!mapreduce本地模式!map和reduce数量调整!】
  • 【面试系列】软件工程师高频面试题及详细解答