HTTP请求API(SpringBoot java项目),token验证报:JWT signature does not match locally computed signature

        通过SpringBoot搭建restful API服务,使用JWT进行登录验证,客户端每次登录会重新获取token,发现API服务端过滤器AuthFilter,通过HTTP 请求头获取token并验证token时,偶尔会报:io.jsonwebtoken.SignatureException:

JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.          

        因为每次重新登录(新token)后又正常了,所以项目运行了半年多,也没去管它。今日再查OOM问题时,发现日志很多这个JWT错误,遂萌生了要彻底解决此问题的想法,恰巧开发环境刚好又报了这个错,通过调试发现客户端通过HTTP请求时,把token放到request header中,到达 API服务器端解析时,拿到的token中含有的特殊字符--不见了,所以报:JWT signature does not match locally computed signature

      原因是从HttpServletRequest对象获取token时,系统有个过滤器将请求参数中的特殊字符过滤掉了。

     

      

你可能感兴趣的:(JAVA)