1. 程式人生 > >Shiro中Session過期頁面跳轉回登入頁面處理問題

Shiro中Session過期頁面跳轉回登入頁面處理問題

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");
    }
}