| | |
| | | package com.ruoyi.framework.aspectj;
|
| | |
|
| | | import java.lang.reflect.Method;
|
| | | import java.util.Collections;
|
| | | import java.util.List;
|
| | | import com.ruoyi.common.annotation.RateLimiter; |
| | | import com.ruoyi.common.enums.LimitType; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.ServletUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import org.aspectj.lang.JoinPoint;
|
| | | import org.aspectj.lang.Signature;
|
| | | import org.aspectj.lang.annotation.Aspect;
|
| | |
| | | import org.springframework.data.redis.core.RedisTemplate;
|
| | | import org.springframework.data.redis.core.script.RedisScript;
|
| | | import org.springframework.stereotype.Component;
|
| | | import com.ruoyi.common.annotation.RateLimiter;
|
| | | import com.ruoyi.common.enums.LimitType;
|
| | | import com.ruoyi.common.exception.ServiceException;
|
| | | import com.ruoyi.common.utils.ServletUtils;
|
| | | import com.ruoyi.common.utils.StringUtils;
|
| | | import com.ruoyi.common.utils.ip.IpUtils;
|
| | | |
| | | import java.lang.reflect.Method; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | |
|
| | | /**
|
| | | * 限流处理
|
| | |
| | | StringBuffer stringBuffer = new StringBuffer(rateLimiter.key());
|
| | | if (rateLimiter.limitType() == LimitType.IP)
|
| | | {
|
| | | stringBuffer.append(IpUtils.getIpAddr(ServletUtils.getRequest()));
|
| | | stringBuffer.append(ServletUtils.getClientIP()); |
| | | }
|
| | | MethodSignature signature = (MethodSignature) point.getSignature();
|
| | | Method method = signature.getMethod();
|