1. 复现问题
今天在项目中配置了knife4j
,本地启动后,输入用户名和密码能够正常访问,如下图所示:
但将项目部署到正式环境并成功启动,且用户名和密码输入正确后,却报出了如下错误:
用户名和密码是在yml
文档中配置的,下文会提及此处的配置。
即You do not have permission to access this page
。
2. 分析问题
将这句话You do not have permission to access this page
翻译成中文就是您无权访问此页面
。
我本地能访问该页面,在正式环境就无法访问了?这就有点说不通,于是去查看我的application.yml
配置文件,如下图所示:
knife4j:
enable: true
setting:
language: zh-CN
enableFooter: false
enableFooterCustom: true
footerCustomContent: 测试knife4j
swaggerModelName: 请求参数实体类
basic:
enable: true
# 此处配置访问knife4j接口文档的用户名和密码
username: root
password: 123456
此处的配置没有问题,于是去查看正式环境的yml
配置,即application-prd.yml
,如下图所示:
knife4j:
# 开启生产环境屏蔽
production: true
因为我正式环境的production
设置为true
,导致无法访问正式环境的接口文档。
3. 解决问题
- 修改
application-prd.yml
的配置,将production
设置为false
,如下所示:
knife4j:
# 开启生产环境屏蔽
production: false
- 直接删除这段配置即可。
如上修改后,重新打包部署到正式环境,此时便可以访问,如下图所示: