记SpringBoot 1.5.x升级到2.5.x

159 阅读1分钟

遇到问题:

  1. Shiro anon白名单失效
  2. SpringMvc 接口mapping全部404

我的解决思路

  • 首先找到在ShiroConfig配置类中我们自定义的负责拒绝请求的过滤器
  • 然后在我们重写的负责拒绝请求的onAccessDenied方法中打个断点
  • debug开始从这个断点往上找到匹配白名单那一步,竟然发现请求路径前面加了个不该出现东西,这里的myApp是不应该出现在Request对象的requestUri中的,由此一看,遇到的两个问题都找到原因了,shiro中配置的白名单是不包含配置的context的,SpringMvc的映射也是如此

企业微信截图_17070191576154.png

解决:

问了一下chatgpt,原来是SpringBoot1.5.x中context是server.context-path,这个配置在SpringBoot2.0.x后需要换server.servlet.context-path,

server.context-path=/myApp
server.servlet.context-path=/myApp