package dbfount.test.core; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.nfwork.dbfound.core.Context; import com.nfwork.dbfound.util.JsonUtil; import com.nfwork.dbfound.web.WebWriter; import com.nfwork.dbfound.web.base.Interceptor; public class AccessCheckInterceptor implements Interceptor { Map<String, String> map; public boolean jspInterceptor(HttpServletRequest request, HttpServletResponse response) throws Exception { Object user_id = request.getSession().getAttribute("user_id"); if (user_id == null) { String url = request.getServletPath(); if (check(url)) { return true; } else { request.getRequestDispatcher("/sessionExpire.jsp").forward( request, response); return false; } } else { return true; } } @SuppressWarnings({ "rawtypes", "unchecked" }) private boolean commonInterceptor(Context context){ Object user_id = context.request.getSession().getAttribute("user_id"); if (user_id == null) { String url = context.request.getServletPath(); if (check(url)) { return true; } else { Map map = new HashMap(); map.put("timeout", true); map.put("message", "session超时或未登录"); map.put("success", false); WebWriter.jsonWriter(context.response, JsonUtil.mapToJson(map)); return false; } } else { return true; } } public boolean doInterceptor(Context context, String className, String method) throws Exception { return commonInterceptor(context); } public boolean executeInterceptor(Context context, String modelName, String executeName) throws Exception { return commonInterceptor(context); } public boolean exportInterceptor(Context context, String modelName, String queryName) throws Exception { return commonInterceptor(context); } public boolean queryInterceptor(Context context, String modelName, String queryName) throws Exception { return commonInterceptor(context); } public boolean check(String url) { if (map.get(url) == null) { return false; } else { return true; } } public void init() { map = new HashMap<String, String>(); map.put("/login.jsp", "1"); map.put("/relogin.jsp", "1"); map.put("/close.jsp", "1"); map.put("/loginWindow.jsp", "1"); map.put("/sys/login.execute", "1"); } }