HandlerInterceptor拦截器的实际应用

1、AuthorityInterceptor.java

@Component
public class AuthorityInterceptor implements HandlerInterceptor {

@Resource
DataDouyinMapper dataDouyinMapper;

//主要是这个方法中实现拦截逻辑
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("已经进入拦截器" + " url: " + request.getServletPath());
String path = request.getServletPath();
//特定路径拦截
if (StringUtils.isNotBlank(path) && path.equals("/kcw/find")) {
//逻辑判断
//1. 时间 2. 次数 一个组共用时间和次数
SysUser user = UserUtils.getUser();//拿到当前用户的账号信息 userMain userSub
if (StringUtils.isNotBlank(user.getManagePower()) && user.getManagePower().equals("userMain")) {

}

//响应数据
ResUtil resUtil = new ResUtil();
resUtil.setCode(200);
resUtil.setMsg("过期");
returnJson(response, JSON.toJSONString(resUtil));
return false;
}
if (StringUtils.isNotBlank(path) && path.equals("/video/find")) {
//逻辑判断

 

//响应数据
ResUtil resUtil = new ResUtil();
resUtil.setCode(200);
resUtil.setMsg("过期");
returnJson(response, JSON.toJSONString(resUtil));
return false;
}
return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}

//拦截后返回对应的Json结果
private void returnJson(HttpServletResponse response, String json) throws Exception {
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
try {
writer = response.getWriter();
writer.print(json);
} catch (IOException e) {
//logger.error("response error", e);
} finally {
if (writer != null)
writer.close();
}
}

}

 

2、WebConfig.java

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Autowired
private AuthorityInterceptor authorityInterceptor;

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authorityInterceptor);
}
}

posted @ 2022-06-14 17:48  liftsail  阅读(77)  评论(0编辑  收藏  举报