package cn.jeesoft.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.method.HandlerMethod; import cn.jeesoft.core.interceptor.Interceptor; import cn.jeesoft.core.utils.RequestUtils; import cn.jeesoft.core.utils.ResponseUtils; import cn.jeesoft.mvc.bean.Admin; import cn.jeesoft.mvc.helper.LoginUserHolder; import cn.jeesoft.mvc.model.ResultCode; /** * 后台管理员登录验证 * @author king */ public class AdminLoginInterceptor implements Interceptor { @Override public boolean intercept(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Admin admin = LoginUserHolder.getLoginAdmin(); String url = RequestUtils.getUrl(request); System.out.println(url+" -- "+(admin==null ? "未登陆" : "已登陆")); if (admin == null) { // 判断是否返回消息主体 if (handler.getClass().isAssignableFrom(HandlerMethod.class)) { ResponseBody body = ((HandlerMethod) handler).getMethodAnnotation(ResponseBody.class); if (body != null) { String responseBody = ResponseUtils.toFailure(ResultCode.LOGOUT, "请先登陆"); ResponseUtils.writer(response, responseBody); return false; } } // 返回HTML文件内容 ResponseUtils.sendRedirect(request, response, "/manage/login"); return false; } return true; } }