如何导入并使用Swagger UI插件禁用页面curl文本展示
Swagger UI 禁用curl明文展示配置方法
你不需要额外引入第三方插件,直接写一个几行代码的自定义插件就能实现curl区块隐藏,完全避免密码明文泄露,具体操作如下:
1. 编写自定义禁用插件
插件逻辑是直接替换Swagger内置的Curl渲染组件为空节点,从根源上不生成curl命令文本,代码如下:
// 禁用curl展示的自定义插件 const hideCurlPlugin = () => ({ wrapComponents: { Curl: () => () => null } })
2. 把插件注入Swagger初始化配置
根据你Python项目用的Swagger集成方式,把插件加到初始化参数里即可:
- 如果你用的是FastAPI、Flask-RESTX、DRF-YASG这类框架自带的封装版Swagger:
找到框架配置中自定义Swagger前端资源/初始化脚本的入口,把上面的插件代码放到SwaggerUIBundle初始化逻辑之前,然后在初始化配置的plugins数组中加入这个自定义插件,核心配置片段:
大部分Python Web框架的Swagger扩展都支持直接注入额外JS或者自定义插件配置,不需要改Swagger本身的源码。const ui = SwaggerUIBundle({ // 你原有的配置项比如openapi地址、dom_id、认证配置等全部保留 plugins: [ SwaggerUIBundle.plugins.DownloadUrl, hideCurlPlugin // 新增这一行加载自定义插件 ] }) - 如果你是手动部署的独立Swagger UI静态资源:
直接打开Swagger目录下的index.html,按上面的逻辑加插件代码、修改plugins配置即可,不需要额外安装依赖。
注意:不要用CSS加
display: none的方式隐藏curl区块,这种方式只是视觉上看不到,页面DOM里仍然存在明文密码,有泄露风险。用插件替换组件的方式是直接跳过curl内容的渲染,不存在残留信息。
验证效果
配置完成后清浏览器缓存刷新文档页,任意接口执行试调用后,原本展示curl命令的区块不会再渲染,完全不会出现带明文密码的命令文本,满足屏幕共享时的信息安全要求。
内容的提问来源于stack exchange,提问作者Zorgoth
相关产品推荐
相关产品推荐

