Shiro中Session過期頁面跳轉回登入頁面處理問題
阿新 • • 發佈:2018-12-22
package xxxxxx.core.shiro.filter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import xxxxxx.LoggerUtils;
import net.sf.json.JSONObject;
/**
* Shiro Filter 工具類
*
*/
public class ShiroFilterUtils {
final static Class<? extends ShiroFilterUtils> CLAZZ = ShiroFilterUtils.class;
//登入頁面
static final String LOGIN_URL="/u/login";
//沒有授權提醒
static final String UNAUTHORIZED = "/open/unauthorized";
/**
*是否是Ajax請求,如果是ajax請求響應頭會有,x-requested-with
* @param request
* @return
*/
public static boolean isAjax(ServletRequest request){
return "XMLHttpRequest".equalsIgnoreCase(((HttpServletRequest)request).getHeader("X-Requested-With"));
}
/**
* response 設定超時
* @param hresponse
* @param resultMap
* @throws IOException
*/
public static void out(ServletResponse servletResponse){
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setCharacterEncoding("UTF-8");
//在響應頭設定session狀態
response.setHeader("session-status", "timeout");
}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import xxxxxx.LoggerUtils;
import net.sf.json.JSONObject;
/**
* Shiro Filter 工具類
*
*/
public class ShiroFilterUtils {
final static Class<? extends ShiroFilterUtils> CLAZZ = ShiroFilterUtils.class;
//登入頁面
static final String LOGIN_URL="/u/login";
//沒有授權提醒
static final String UNAUTHORIZED = "/open/unauthorized";
/**
*是否是Ajax請求,如果是ajax請求響應頭會有,x-requested-with
* @param request
* @return
*/
public static boolean isAjax(ServletRequest request){
return "XMLHttpRequest".equalsIgnoreCase(((HttpServletRequest)request).getHeader("X-Requested-With"));
}
/**
* response 設定超時
* @param hresponse
* @param resultMap
* @throws IOException
*/
public static void out(ServletResponse servletResponse){
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setCharacterEncoding("UTF-8");
//在響應頭設定session狀態
response.setHeader("session-status", "timeout");
}
}