开源微服务项目集成Knife4j——解密Knife4j

时间:2024-05-23 08:48:02

Knife4j (API接口文档系统生成工具) 不用登陆就可以查看接口请求参数。使用knife4J的项目存在安全隐患,当Knife4j地址泄露,会对目标系统造成破坏。因此访问Knife4J要进行安全认证检测。Knife4J在安全方面做了以下控制。(下面操作是在开源项目Ruoyi-cloud 实验的)

访问页面加权控制

1.1 在使用knife4j的模块下的application.yam或application.properties

application.yam 配置
knife4j:
  basic:
    enable: true
    username: test
    password: test
application.properties 配置

knife4j.basic.enable=true
## Basic认证用户名
knife4j.basic.username=zhangsan
## Basic认证密码
knife4j.basic.password=123

1.2 访问出现下面的提示,说明配置成功了(用新浏览器打开链接 才会出现提示,在原来管理后台菜单进入是不会出现。)

 

开源微服务项目集成Knife4j——解密Knife4j访问授权配置成功提示界面

开启生产环境,屏蔽所有资源接口(注意:需要疲敝的模块yml文件下加上!)

knife4j.production=true

2.1 配置成功的提示界面

 

开源微服务项目集成Knife4j——解密Knife4j屏蔽资源接口成功 提示界面

 

Knife4j 安全控制原理

3.1 knife4j.production=true 运行原理

A 启动从yaml 配置文件或其他配置文件,执行init, 读取配置参数值 进行封装。

B 访问knife4J 文档模块 执行doFilter,当production为true,并且uri为加了配置的路径,拦截返回提示 。

开源微服务项目集成Knife4j——解密Knife4j knife4j.production=true执行源码截图

3.2 knife4j.basic.... 配置 执行原理

跟 3.1差不多 ,就不多说了

开源微服务项目集成Knife4j——解密Knife4jknife4j.basic.... 配置 执行源码

knife4J 友好界面是从哪来的?

页面是在此jar包里面的如下

开源微服务项目集成Knife4j——解密Knife4j