最近一直在搞项目中的错误界面配置,已经访问不存在路径应用程序报错,泄露中间版本问题。这都是因为没有正确的配置web.xml。
以为只要在web.xml中配置后错误界面就OK,配置后出现404错误,项目总是提示登录超时,或者无法登陆。查其原因是因为项目是用的shiro框架,出现404错误导致session丢失。
主要场景描述
1、首先登录成功后访问正常页面没有问题的;
2、接着访问一个不存在的页面,即跳到相应的404页面,假设我的页面是jsp的;
3、再刷新一下就会提示登录超时。
解决方案
1、换一个新的session key,如uid; 推荐这种做法;
2、错误页面 设置<%@ page session="false' %>;(主要使用这个方式解决,简单粗暴)
3、给shiro filter配置<dispatcher>ERROR</dispatcher>,然后在其filterChainDefinitions中添加/WEB-INF/jsp/error/error = anon;