Spring攔截器進行登入攔截
阿新 • • 發佈:2019-02-02
攔截器:
public class LoginInterceptor implements HandlerInterceptor{ private static final Log log = LogFactory.getLog(LoginInterceptor.class); @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { } @Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { LoginUserVO vo = (LoginUserVO)request.getSession().getAttribute("user"); if(vo==null||StringUtils.isBlank(vo.getMobile())){ response.setHeader("Content-Type", "text/plain;charset=utf-8"); response.getWriter().write(JSONObject.toJSONString(RestResponseUtil.err(-10, "使用者未登入,請登入後重試"))); return false; } return true; } }
攔截配置類:
對所有方法(/**)進行攔截,排除/licardUser/loginRegister方法
@Configuration public class MvcInterceptorConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/licardUser/loginRegister");; } }