SpringBoot+JWT+Shiro+Swagger2.0携带token的问题
程序员文章站
2022-07-02 17:51:43
...
问题说明
最近公司启动了一个新项目,项目使用无状态的连接方式所以使用了JWT来生成token,然后结合shiro做接口的安全验证,由于拦截器会对需要token验证的接口进行拦截,所以无法在swagger中测试接口的作用,也就失去了swagger的意义。所以需要保证在swagger访问时不带token,这才是最方便的
问题分析
需要达到目的,主要是修改依据token拦截的拦截器就行。在拦截器中添加如下代码。原理就是lz发现在swagger中发出的请求中Referer所对应的地址都是“http://localhost:8686/swagger-ui.html”字符串,所以只要是的话直接放行,header中的Referer代表的是当前请求是从哪一个网址过来的,例如你从百度跳转到腾讯,那跳转到腾讯的那一个请求中referer就是百度,lz是这样理解的。网上也有利用拦截器设置全局token的解决方式,个人认为还是我这种方式简单。
//*****放行swagger中需要携带token的接口 start*****
String referer = httpServletRequest.getHeader("Referer");
if (referer.equals("http://localhost:8686/swagger-ui.html")) {
return true;
}
//*****放行swagger中需要携带token的接口 end*****
效果
说明:本文只是提供解决思路和主要代码,其他问题可以参考自行参考其他帖子
上一篇: html中meta标签及用法理解
下一篇: 爆笑尬事儿,直接尬死
推荐阅读
-
企业微信平台开发--解决access_token过期的问题
-
浅谈Postman解决token传参的问题
-
接口测试中实际发生的几个问题——python中token传递
-
Uncaught SyntaxError: Unexpected token : 开发遇到的跨域问题
-
SpringBoot+JWT+Shiro+Swagger2.0携带token的问题
-
Laravel (Lumen) 解决JWT-Auth刷新token的问题
-
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
-
如何解决token不刷新的问题
-
使用JWT作为Spring Security OAuth2的token存储问题
-
关于请求token的问题