怎么在春天引导中限制复述,接口的访问频率

  介绍

本篇文章为大家展示了怎么在春天引导中限制复述,接口的访问频率,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

生产环境下可以解决的问题:

1。短信验证码请求评率限制(防止抓包短信轰炸)

2。热点数据请求评率限制(防止数据库爆炸)

@ component   public  class  BlackInterceper  implements  HandlerInterceptor  {   ,   ,@ autowired   ,private  RedisTemplate<字符串,Object>, redisTemplate;   ,   ,private  Logger  log =, LoggerFactory.getLogger (this.getClass ());   ,   ,@Override   ,public  boolean  preHandle (HttpServletRequest 请求,,HttpServletResponse 反应,Object 处理程序)   throws 才能;Exception  {   ,response.setHeader (“Content-type",,“text/html; charset=UTF-8");   ,String  token =, request.getHeader (Cons.TOKEN.WECHAT);   ,String  requestURI =, request.getRequestURI ();   ,   ,if  (StringUtils.isBlank(令牌),{   response.setHeader才能(“Content-type",,“text/html; charset=UTF-8");   response.getWriter才能().write (JsonUtils.marshalToString (ReturnResult.build(401年,“未授权“)));   return 才能;假;   ,}   ,Integer  userId =,(整数),redisTemplate.opsForValue () . get (Cons.TOKEN.WECHAT  +,“:“, +,令牌);   ,log.error(“用户id={},访问了url={},请求ip={}“,令牌,requestURI,, IpUtil.getIpAddress(请求));   ,如果(redisTemplate.hasKey (“black")) {   如果才能(redisTemplate.opsForSet () .isMember (“black",, userId)) {   response.getWriter才能().write (JsonUtils.marshalToString (ReturnResult.build(500年,“由于存在恶意攻击你已被限制访问“)));   return 才能;假;   ,,}   ,}   ,Integer  count =,(整数)redisTemplate.opsForValue () . get(“限制:“+令牌);   ,如果(count==null) {   redisTemplate.opsForValue才能()这里(“限制:“+令牌,,1,,60岁,TimeUnit.SECONDS);   return 才能;真实;   ,其他}{   如果才能(count> 100年,,,,count<150) {   response.getWriter才能().write (JsonUtils.marshalToString (ReturnResult.build(500年,“请求太频繁,请稍后再试,)));   redisTemplate.opsForValue才能().increment(“限制:“+令牌,1);   return 才能;假;   }才能else 如果(count>=150) {   redisTemplate.opsForSet才能()阀门(“black" userId 2, TimeUnit.DAYS);   response.getWriter才能().write (JsonUtils.marshalToString (ReturnResult.build(500年,“请求太频繁,已经被限制访问“)));   ,//才能redisTemplate.opsForSet阀门()(“black",令牌);   return 才能;假;   }{其他才能   redisTemplate.opsForValue才能().increment(“限制:“+令牌,1);   return 才能;真实;   ,,}   ,}   ,}   ,   ,@Override   ,public  void  postHandle (HttpServletRequest 请求,,HttpServletResponse 反应,Object 处理程序,   ModelAndView 才能;modelAndView), throws  Exception  {   ,//TODO  Auto-generated  method 存根   ,   ,}   ,   ,@Override   ,public  void  afterCompletion (HttpServletRequest 请求,HttpServletResponse 反应,Object 处理程序,,Exception 交货)   throws 才能;Exception  {   ,//TODO  Auto-generated  method 存根   ,   ,}   }

上述内容就是怎么在春天引导中限制复述,接口的访问频率,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

怎么在春天引导中限制复述,接口的访问频率