- 一般的,对浏览器的请求进行拦截过滤,是通过Filter 实现,在 springMVC 中提供的 HandlerInterceptorAdapter 这个适配器,集成这个便可以实现Filter 所有功能进行拦截,
- HandlerInterceptorAdapter 有4个方法
- preHandle(): 预处理, 在业务处理器被调用之前执行,常用做权限验证,字符集等
- postHandle(): 在业务处理执行完成返回渲染页面之前执行;
- afterCompletion() 在业务处理器被调用之后执行
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 获取并校验登录认证注解 if(handler instanceof HandlerMethod) { }else{ return true; } if(annotation == null){ return true; } //从header中获取token String token = request.getHeader("token"); //如果header中不存在token,则从参数中获取token if(StringUtils.isBlank(token)){ token = request.getParameter("token"); } //token为空 if(StringUtils.isBlank(token)){ throw new RRException("token不能为空"); } //查询token信息 //设置userId到request里,后续根据userId,获取用户信息 request.setAttribute(USER_KEY, tokenEntity.getUserId()); return true; }
springMVC 过滤/拦截器 HandlerInterceptorAdapter
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.