开发者社区> 问答> 正文

SpringMVC写的服务接口如何拦截一个ip多次访问?

例如一个ip在一秒内访问超过了10次就拒绝响应,怎么弄?

展开
收起
a123456678 2016-03-18 15:27:45 3052 0
1 条回答
写回答
取消 提交回答
  • 拦截器 + 内存缓存

    例如,ehcache, 建立一个

    Cache
    ip地址从request获取,用ip地址为key,AtomicInteger每次自增后判断与10的大小比较,超过就返回false禁止访问,如下配置清理时间, key有一秒不被访问,就被缓存清理机制清除掉,

    timeToIdleSeconds="1"
    timeToLiveSeconds="0"

    留神你的ip识别问题,对方使用nat的话,想想看一个局域网100台电脑通过一个公网ip出口来访问你的应用……

    2019-07-17 19:06:50
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载