从0到1学SpringCloud第十篇:登录鉴权和IP防刷

本文介绍了如何在SpringCloud Gateway中实现登录鉴权和IP防刷机制。通过自定义过滤器,实现了在请求被路由前检查用户登录状态以及限制同一IP的注册次数和最短时间间隔。详细步骤包括配置信息的添加、Nacos配置的使用,以及过滤器的创建和逻辑实现。
摘要由CSDN通过智能技术生成

文章内容输出来源:拉勾教育Java高薪训练营

1. 前言

1.1 说明

本文将对案例的判断是否登录以及非业务需求(注册限制)进行实现。

  • 在欢迎页面需要获取到登录用户的邮箱信息,这个请求api/users/info就要判断下用户是否登录,如果未登录则返回相应信息,让用户可以去登录后再操作
  • 在注册页面,一个IP可以注册多次,但也不能让他们无节制的注册。所以需要限制一个IP最多可以注册多少次;一个IP的多次注册不能太频繁,要有时间间隔。

实现的技术将使用GateWay提供的过滤器功能,它能够拦截请求,在请求的前后进行某些机制的处理

1.2 GateWay的过滤器

1.2.1 过滤器生命周期

生命周期主要有两个pre和post

  • pre:这种过滤器在请求被路由之前调⽤。我们可利⽤这种过滤器实现身份验证、在集群中选择 请求的微服务、记录调试信息等
  • post:这种过滤器在路由到微服务以后执⾏。这种过滤器可⽤来为响应添加标准的 HTTP Header、收集统计信息和指标、将响应从微服务发送给客户端等。

1.2.2 过滤器类型

GateWay的过滤器分为GateWayFilter和GlobalFilter两种

  • GateWayFilter:应⽤到单个路由路由上
  • GlobalFilter:应⽤到所有的路由上

2. 增加配置信息

2.1 进入nacos控制台,进入配置列表

2.2 在lagou-common-config.yaml配置文件中增加以下两个配置

  • ip.times:表示同一ip的注册次数,这里限制为3次
  • ip.seconds:表示同一ip的多次注册请求的最短时间间隔,这里限制为5秒
ip:
  times: 3
  seconds: 5  

3. 修改网关项目

项目是lagou-cloud-gateway-9002

3.1 pom.xml引入相关依赖

  • 引入nacos的配置依赖,需要获取外部配置的ip注册最大次数和ip注册最短时间间隔参数
 <dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值