swagger系列三:结合Nginx访问控制及swagger常见问题解决
1. 用HTTP基本身份验证限制访问
在swagger
生成的文档放在公网上的时候,就暴露了接口,有了安全隐患。nginx
的ngx_http_auth_basic_module
模块为我们提供了方便。再结合Apache
模块htpasswd
来增强安全性。需安装Apache服务,这里不赘述。
htpasswd
: htpasswd建立和更新存储用户名、密码的文本文件, 用于对HTTP用户的basic认证。
创建一个密码文件和第一个用户。htpasswd使用该-c
标志(创建一个新文件,如果文件存在则不用-c
),文件路径名作为第一个参数,并将用户名作为第二个参数运行该实用程序,按Enter并在提示中输入user1的密码。如:$ sudo htpasswd -c /etc/apache2/.htpasswd user1
查看结果: $ cat /etc/apache2/.htpasswd user1:$ APR1 $ / woC1jnP $ KAh0SsVn5qeSMjTtn0E9Q0 user2:$ APR1 $ QdR8fNLT $ vbCEEzDj7LyqCMyNpSoBh /
基本认证与IP地址访问限制相结合。配置Nginx:
location /docs { satisfy all; deny 192.168.31.2; allow 192.168.31.0/24; allow 127.0.0.1; deny all; auth_basic "Administrator's area"; auth_basic_user_file /usr/local/etc/nginx/.htpasswd; }
重启Nginx: nginx -s reload
,访问
不输入账户密码或账户密码错误访问:
2.常见问题
- 右下角
ERR
错误
点击可见
{"schemaValidationMessages":[{"level":"error","message":"Can't read from file swagger.json"}]}
解决方法:在使用swagger-ui
时它会调用一个远程验证,在index.html中添加validatorUrl:false
关闭远程验证即可。
相关推荐
javashixisheng 2020-06-25
SZStudy 2020-01-08
hithyc 2019-12-27
kianliu00 2019-12-14
wllinux 2019-11-25
ccschan 2019-11-20
贫农 2019-11-19
88971730 2019-11-18
yinsui 2011-03-11
讨厌什么变成什么 2019-11-04
doITwhat 2019-10-09
stoneechogx 2019-10-24
85407718 2019-10-23
80791492 2019-09-22
海绵宝宝的欧尼 2012-09-08
hanwentan 2012-02-17
Linux 2011-07-01