事件场景:
测试环境时候 前后端代码在一个服务器上,当有session超时的时候能够根据 shiro.xml配置的路径跳转到登录页面。但是在仿真环境和生产环境 因为后台controller层代码服务在 服务器A的tomcat上,而前端页面的资源 在服务器B上的tomcat上。此时session已经过期或者权限验证失败,但是并不能顺利跳转。nignx会出302,404的错误。后来配置了nginx的代理之后 能访问到 服务器B上的资源 确是作为文本内容传到页面。并没有实现正常跳转。因此需要重新规划验证失败情况下的操作。
新建拦截器 继承了UserFilter 之后重写了onAccessDenied 方法如下
这个方法会在session过期的时候 进行对应的返回状态码。之后由前端代码进行跳转。
对应的 shiro.xml就可以配置成
这样当配