返回顶部
首页 > 资讯 > 精选 >spring boot拦截器实现IP黑名单实例代码
  • 919
分享到

spring boot拦截器实现IP黑名单实例代码

springboot拦截器 2023-05-31 15:05:07 919人浏览 八月长安
摘要

前言最近一直在搞 Hexo+GitHubPage 搭建个人博客,所以没怎么进行 SpringBoot 的学习。所以今天就将上次的”?秒防刷新”进行了一番修改。上次是采用注解加拦截器(@Aspect)来实现功能的。但是,如果需求是一个

前言

最近一直在搞 Hexo+GitHubPage 搭建个人博客,所以没怎么进行 SpringBoot学习。所以今天就将上次的”?秒防刷新”进行了一番修改。上次是采用注解加拦截器(@Aspect)来实现功能的。但是,如果需求是一个全局的拦截器对于大部分URL都进行拦截的话,自己一个个加显然是不可能的。而且上次的拦截器对于Controller的参数有所要求,在实际他人引用总是显得不方便。所以,这次使用了继承HandlerInterceptor来实现拦截器。

功能需求

对于项目中某类URL进行拦截,若用户在短时间内大量访问该链接,则将用户IP列入黑名单,禁止用户访问网页。(同时,可以使用@Async来创建定时任务帮用户解禁。)

知识记录

spring 的拦截器 HandlerInterceptor 的功能跟过滤器类似,但是提供更精细的的控制能力:在request被响应之前、request被响应之后、视图渲染之前以及request全部结束之后。我们不能通过拦截器修改request内容,但是可以通过抛出异常(或者返回false)来暂停request的执行。
配置拦截器也很简单,Spring 为此提供了基础类WEBmvcConfigurerAdapter ,我们只需要重写addInterceptors 方法添加注册拦截器。

实现自定义拦截器只需要3步:

创建我们自己的拦截器类并实现 HandlerInterceptor 接口。

创建一个 Java 类继承 WebMvcConfigurerAdapter,并重写 addInterceptors 方法。

实例化我们自定义的拦截器,然后将对像手动添加到拦截器链中(在addInterceptors方法中添加)。

正式开工

IP工具

由于不清楚用户代理,最好能使用一个工具类来来获取用户真实IP。这个Google就能找到,我就不贴代码了。

数据库

我使用的是MySQL数据库,持久层框架mybatis。具体可参考”准备”步骤。
我在”myboot”数据库中创建一张表”blaclist”,属性如下:

字段名 解释
id 记录的id
ip 用户真实IP
iptime IP被时间

实体类

public class BlackList {  private int id;  private String ip;  private Date iptime; // 日期类型,格式:yyyy-MM-dd HH:mm:ss  //构造器  public BlackList() {  }  public BlackList(String ip, Date iptime) {    this.ip = ip;    this.iptime = iptime;  }  // get && set 方法}

--结束END--

本文标题: spring boot拦截器实现IP黑名单实例代码

本文链接: https://lsjlt.com/news/226656.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • spring boot拦截器实现IP黑名单实例代码
    前言最近一直在搞 Hexo+GithubPage 搭建个人博客,所以没怎么进行 SpringBoot 的学习。所以今天就将上次的”?秒防刷新”进行了一番修改。上次是采用注解加拦截器(@Aspect)来实现功能的。但是,如果需求是一个...
    99+
    2023-05-31
    spring boot 拦截器
  • Android项目实现黑名单拦截效果
    本文实例讲述了Android编程中黑名单的实现方法。分享给大家供大家参考,具体如下: 1,黑名单数据库创建 三个字段(_id 自增长字段 phone 黑名单号码 mode ...
    99+
    2022-06-06
    黑名单 Android
  • SpringBoot拦截器实现登录拦截的示例代码
    可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等  实现代码 新建 interceptor包 添加拦截器代码 package c...
    99+
    2024-04-02
  • spring boot拦截器如何使用spring AOP实现
    本篇文章为大家展示了spring boot拦截器如何使用spring AOP实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在spring boot中,简单几步,使用spring AOP实现一个拦...
    99+
    2023-05-31
    springboot spring aop 拦截器
  • spring boot Mybatis 拦截器实现拼接sql和修改的代码详解
    定义一个 SqlIntercepor 类 import com.culturalCenter.placeManage.globalConfig.Interface.Intercept...
    99+
    2024-04-02
  • Express + Node.js实现登录拦截器的实例代码
    介绍 这边的拦截器,对应于spring MVC中的filter,所有的http请求,通过拦截器处理之后才能访问到对应的代码/资源。 最典型的应用场景就是实现访问权限控制,给予不同的用户/用户组不同的页面...
    99+
    2022-06-04
    实例 代码 拦截器
  • Java拦截器Interceptor实现原理及代码示例
      1,拦截器的概念 java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执...
    99+
    2024-04-02
  • Spring Boot 实现 WebSocket 的代码示例
    目录什么是 WebSocket ?HTTP vs WebSocket什么时候使用 WebSocket?代码示例1. SpringBoot 使用原生 WebSocket1.1 引入 s...
    99+
    2024-04-02
  • springboot过滤器和拦截器的实例代码
    拦截器与过滤器   在讲Spring boot之前,我们先了解一下过滤器和拦截器。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的。在分析两者的区别之前,我们先理解一...
    99+
    2024-04-02
  • Mybatis拦截器实现数据权限的示例代码
    在我们日常开发过程中,通常会涉及到数据权限问题,下面以我们常见的一种场景举例: 一个公司有很多部门,每个人所处的部门和角色也不同,所以数据权限也可能不同,比如超级管理员可以查看某张 ...
    99+
    2024-04-02
  • Android 滑动拦截实例代码解析
    废话不多说了,直接给大家贴代码了,具体代码如下所示: package demo.hq.com.fby; import android.content.Context; im...
    99+
    2022-06-06
    Android
  • android短信拦截的实现代码
    短信拦截的实现主要是使用了广播接收者来实现。 BroadcastReceiver  广播接收者   必须指定要接收的广播类型。必须明确的指定act...
    99+
    2022-06-06
    Android
  • springmvc实现简单的拦截器
    SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实...
    99+
    2023-05-31
    springmvc 拦截器 实现简单
  • vue怎么实现请求拦截白名单
    前言在使用 Vue 进行开发的过程中,我们会遇到需要对网络请求进行拦截的情况,并且还需要排除一些请求不受拦截,即白名单。这篇文章将介绍 Vue 请求拦截白名单实现的方法。正文在使用 Vue 进行开发时,我们通常会使用 axios 发送网络请...
    99+
    2023-05-14
  • 如何实现Android自动拦截与接听功能APK黑白名单
    这篇文章给大家分享的是有关如何实现Android自动拦截与接听功能APK黑白名单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。自动接听与挂断调用关系如下 首先在启动apk初始界面的activity中,启动serv...
    99+
    2023-06-22
  • spring boot使用拦截器修改请求URL域名 换 IP 访问的方法
    目录Interceptor 介绍Interceptor 作用自定义 Interceptor案例1 :域名换IP访问案例2: erverWebExchange通过拦截器修改请求url案...
    99+
    2024-04-02
  • springboot+mybatis-plus基于拦截器实现分表的示例代码
    目录前言一、设计思路二、实现思路三、代码实现接口描述核心组成部分1.本地线程工具类2.注解部分3.拦截器实现四、测试后记前言 最近在工作遇到数据量比较多的情况,单表压力比较大,cru...
    99+
    2024-04-02
  • Spring Boot整合mybatis(一)实例代码
    sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置。接下来开始spring-boot与mybatis的整合。创建一个maven工程命名为spring-boot-entity,pom.xml文件配置如下:&l...
    99+
    2023-05-31
    spring boot 整合
  • Spring Boot使用Log4j2的实例代码
    前言Spring Boot 默认使用Logback,来打印日志,这里还想说的SLFJ(Simple Logging Facade for Java),它们之间的关系,一张图,说明一切:maven 配置<!--use log4j2 pr...
    99+
    2023-05-31
    spring boot log4j2
  • Spring Boot 实现Restful webservice服务端示例代码
    1.Spring Boot configurationsapplication.ymlspring: profiles: active: dev mvc: favicon: enabled: false datasource: drive...
    99+
    2023-05-30
    spring boot webservice
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作