1. 程式人生 > >Spring攔截器進行登入攔截

Spring攔截器進行登入攔截

攔截器:

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 {
        
    }
    
    @Override
public 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");;
    }
}