如何禁止springcloud和springboot中swagger的访问?还有很多时候,我们希望在开发环境开发swagger-ui的访问,而在生产环境禁止swagger-ui的访问!
有很多种方法,很多人通过在java中编写@Configure处理器来实现,但这样比较麻烦,不利于开发环境和生产环境的配置,有没有简单的方法呢,既能让开发环境中开发swagger-ui,又能在生产环境中关闭swagger-ui呢?
答案是肯定,这就是本文采用的,使用nginx的配置来实现,因为生产都是通过域名从nginx代理出去的,而开发环境是可以通过内网ip从网关服务器访问,所以我们只需对nginx进行拦截处理即可。
比如安全部门要求禁止
htttp://www.abc.com/order/v2/api-docs,那么我们可以在nginx的www.abc.com监听的server下添加如下配置:
location ~* /api-docs$ {
deny all;
}
location ~* /api-docs/$ {
deny all;
}
上面是代码的意思是,禁止访问api-docs、api-docs/ 结尾的请求!如下图
这样是不是很灵活,不用改任何java代码!