Session超时的两种情况:
shiro在管理session后,在session超时会进行跳转,这里有两种情况需要考虑,一种是ajax方式的请求超时,一种页面跳转请求的超时;
解决问题的思路:通过定义过滤器来检查是否Session过期问题,当前是否session超时,超时判定是否是ajax请求,如果是ajax请求,则在response头部设置session-status值,返回到前端读取到相应值后进行处理;
后台代码
package xxxxxx.sys_common.core.shiro.filter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.shiro.web.filter.AccessControlFilter;
import xxxxxx.model.entity.SysUser;
import xxxxxx.core.shiro.token.manager.TokenManager;
import xxxxxx.utils.LoggerUtils;
/**
* 判断登录过滤器
*/
public class LoginFilter extends AccessControlFilter {
/**
* 是否允许访问
*/
protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object m