Aspect实现接口调用频率限制

这篇博客介绍了如何利用AOP(面向切面编程)的思想,在后端实现接口调用频率限制,以防止用户频繁调用邮件发送接口。通过自定义注解和Aspect,设定了在60秒内同一IP最多访问特定接口3次的规则,从而增加了系统的安全性。

aop 的思想,就是讲方法外到内执行,中间给切成三段,未进入,进入,已退出

背景:

最近在做一个毕业设计,需要发送邮件(发送密码重置验证码),为了避免用户频繁调用邮件发送接口。
前端:将按钮置灰,开启倒计时,倒计时结束恢复按钮可用
由于没有登录,恶意的可能会使用代码去刷接口(在未进入时将其拦截处理
后端:
使用自定义注解+aop 通过用户ip 限制短时间内的访问次数

准备:

自定注解,可以配置多长时间内最多访问多少次
aspect:处理标注了自定义注解的参数,执行相关逻辑。

代码实现

注解:

@Documented
@Target({
   
   ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequestFrequencyLimit {
   
   
    //访问时间间隔 默认是60 秒
    int interval() default 60000;

    //访问次数限制
    int count() default 3;//默认interval 时间内最多访问3次
}


aspect:

/**
 * 接口访问频率 限制aop
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值