leomon
2025-05-14 3387f6754a07694dda1307849a3ab6fe8a24d7c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Êþº¾4â
s    +t
uv wxy z{
|} ~ 
€    ‚ƒ
€„
|…† ‡ˆ ‰Š‹
€
Ž
+‘’
“” •
–— ˜
™š
›œ
    +žŸ   ¡¢ w£¤¥
'¦§¨
©ª redisTemplate3Lorg/springframework/data/redis/core/RedisTemplate;    SignatureYLorg/springframework/data/redis/core/RedisTemplate<Ljava/lang/Object;Ljava/lang/Object;>;loggerLorg/slf4j/Logger;<init>6(Lorg/springframework/data/redis/core/RedisTemplate;)VCodeLineNumberTableLocalVariableTablethisLcom/oying/aspect/LimitAspect;LocalVariableTypeTableMethodParameters\(Lorg/springframework/data/redis/core/RedisTemplate<Ljava/lang/Object;Ljava/lang/Object;>;)Vpointcut()VRuntimeVisibleAnnotations&Lorg/aspectj/lang/annotation/Pointcut;value'@annotation(com.oying.annotation.Limit)around:(Lorg/aspectj/lang/ProceedingJoinPoint;)Ljava/lang/Object;    joinPoint&Lorg/aspectj/lang/ProceedingJoinPoint;request'Ljavax/servlet/http/HttpServletRequest;    signature*Lorg/aspectj/lang/reflect/MethodSignature;signatureMethodLjava/lang/reflect/Method;limitLcom/oying/annotation/Limit;    limitTypeLcom/oying/aspect/LimitType;keyLjava/lang/String;keys)Lcom/google/common/collect/ImmutableList;    luaScript redisScript8Lorg/springframework/data/redis/core/script/RedisScript;countLjava/lang/Long;=Lcom/google/common/collect/ImmutableList<Ljava/lang/Object;>;JLorg/springframework/data/redis/core/script/RedisScript<Ljava/lang/Long;>; StackMapTable¨«¬y­{®†¯°’
Exceptions±$Lorg/aspectj/lang/annotation/Around;
pointcut()buildLuaScript()Ljava/lang/String;<clinit>
SourceFileLimitAspect.java$Lorg/aspectj/lang/annotation/Aspect;*Lorg/springframework/stereotype/Component; 3> -.² ³´« µ¶(org/aspectj/lang/reflect/MethodSignature ·¸com/oying/annotation/Limit­ ¹º O» Qm¼ ½¾® ¿P ÀÁ Âmjava/lang/String Ãm_¬ Äm/ ÅÆ Çȯ ÉÊ lm=org/springframework/data/redis/core/script/DefaultRedisScriptjava/lang/Long 3Ëjava/lang/Object XÌÍ ÎÏ ÐÌÑ ÒÓÔ ÕÖ ×Ì 122第{}次访问key为 {},描述为 [{}] çš„æŽ¥å£ ØmÙ ÚÛ ÜÝ'com/oying/exception/BadRequestException访问次数受限制 3ÞÌlocal c
c = redis.call('get',KEYS[1])
if c and tonumber(c) > tonumber(ARGV[1]) then
return c;
end
c = redis.call('incr',KEYS[1])
if tonumber(c) == 1 then
redis.call('expire',KEYS[1],ARGV[2])
end
return c;com/oying/aspect/LimitAspectß àá$org/aspectj/lang/ProceedingJoinPoint%javax/servlet/http/HttpServletRequestjava/lang/reflect/Methodcom/oying/aspect/LimitType'com/google/common/collect/ImmutableList6org/springframework/data/redis/core/script/RedisScriptjava/lang/Throwablecom/oying/utils/RequestHoldergetHttpServletRequest)()Ljavax/servlet/http/HttpServletRequest; getSignature()Lorg/aspectj/lang/Signature;    getMethod()Ljava/lang/reflect/Method; getAnnotation4(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;()Lcom/oying/aspect/LimitType;com/oying/utils/StringUtilsisEmpty(Ljava/lang/CharSequence;)ZIPgetIp;(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;getNameprefix getRequestURIreplaceD(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;join'([Ljava/lang/Object;)Ljava/lang/String;of=(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;&(Ljava/lang/String;Ljava/lang/Class;)V()Ijava/lang/IntegervalueOf(I)Ljava/lang/Integer;period1org/springframework/data/redis/core/RedisTemplateexecuteo(Lorg/springframework/data/redis/core/script/RedisScript;Ljava/util/List;[Ljava/lang/Object;)Ljava/lang/Object;cn/hutool/core/util/ObjUtil    isNotNull(Ljava/lang/Object;)ZintValuenameorg/slf4j/Loggerinfo((Ljava/lang/String;[Ljava/lang/Object;)Vproceed()Ljava/lang/Object;(Ljava/lang/String;)Vorg/slf4j/LoggerFactory    getLogger%(Ljava/lang/Class;)Lorg/slf4j/Logger;!+-./012345X
*·*+µ±6!"    #7
89
-.: 
-0;-/<=>5+±6'7 89? @AsBCD5_ ¸M+¹ÀN-¹:¶À:¹    :¹
:¸ ™² ¦ ,¸ :§
¶:½Y¹SYSYSYSY,¹¶S¸¸:*·:    »Y    ·:
*´
½Y¹¸SY¹¸S¶À:  ¸ ™; ¶!¹£,²"#½Y SYSY¹$S¹%+¹&°»'Y(·)¿6J+,-."/+041<2D3M5T9‰;<œ=Ê>á?@
B7z 89EFGHIJþKL"òMN+éOP4àQR‰‹ST…UR    œxVW
ÊJXY :‰‹SZœxV[
\MÿM]^_`abcdÿµ ]^_`abcdedfghi;E? jAsklm5-*°6J7 89n>5!    +¸,³"±6op?
qr