小五六资源网,小五六博客
  • 首页
  • Java
  • java springboot 全局拦截防止恶意请求,加入黑名单

java springboot 全局拦截防止恶意请求,加入黑名单

发布:小五六资源网 2020年12月21日 7:55 星期一分类: Java


@Resource private StringRedisTemplate stringTemplate;

/*
过滤黑名单开始*/
if (stringTemplate.hasKey(IPUtils.getIpAddr(request))) { forwardIpLimit(response, request, "提示:ip已被加入黑名,解除时间" + stringTemplate.getExpire(IPUtils.getIpAddr(request))); return false; }
/*
过滤黑名单结束*/


/*
全局拦截安全访问处理开始,每秒15次请求即封禁ip*/ try { RateLimiter limiter = ipRequestCaches.get(IPUtils.getIpAddr(request)); if (limiter.tryAcquire()) { // 获得令牌(不限制访问)接着走下面逻辑判断 //return true; } else { // 未获得令牌(限制访问) //存入redis stringTemplate.opsForValue().set(IPUtils.getIpAddr(request), "100", 60 * 10, TimeUnit.SECONDS); forwardIpLimit(response, request, "提示:访问过繁,已被截。稍后重\n警告:即将触发IP封禁机制!IP" + IPUtils.getIpAddr(request)); return false; } } catch (ExecutionException e) { e.printStackTrace(); }
/*
全局拦截安全访问处理结束,每秒15次请求即封禁ip*/
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

发表评论: