packagecn.rhgk.yqfy.oa.intercept;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.commons.lang.StringUtils;importorg.springframework.web.servlet.HandlerInterceptor;importorg.springframework.web.servlet.ModelAndView;importcn.rhgk.yqfy.oa.pojo.AppAdminLogin;public class LoginIntercept implementsHandlerInterceptor {private ListexceptUrls;public ListgetExceptUrls() {returnexceptUrls;
}public void setExceptUrls(ListexceptUrls) {this.exceptUrls =exceptUrls;
}
@Overridepublic voidafterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throwsException {
}
@Overridepublic voidpostHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throwsException {
}
@Overridepublic booleanpreHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throwsException {
String requestUri=request.getRequestURI();if(requestUri.startsWith(request.getContextPath())) {
requestUri=requestUri.substring(request.getContextPath().length(), requestUri.length());
}//系统根目录
if (StringUtils.equals("/", requestUri)) {return true;
}//放行exceptUrls中配置的url
for(String url : exceptUrls) {if (url.endsWith("/**")) {if (requestUri.startsWith(url.substring(0, url.length() - 3))) {return true;
}
}else if(requestUri.startsWith(url)) {return true;
}
}
HttpSession session=request.getSession();
AppAdminLogin user= (AppAdminLogin) session.getAttribute("userInfo");if (null != user) {//已登陆
return true;
}else {//当前用户未登陆
response.sendRedirect(request.getContextPath() + "/login/auth");
}return false;
}
}