Files
struts2-scaffold/target/classes/com/example/struts2/interceptor/RateLimitInterceptor.class

29 lines
3.8 KiB
Plaintext
Raw Normal View History

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>=<00>
 7com/opensymphony/xwork2/interceptor/AbstractInterceptor<init>()V&java/util/concurrent/ConcurrentHashMap
  4com/example/struts2/interceptor/RateLimitInterceptoripRequestCountsLjava/util/Map;   ipLastAccess<  maxRequestsPerMinuteJ
  getClientIp>(Lcom/opensymphony/xwork2/ActionInvocation;)Ljava/lang/String;
 !"java/lang/SystemcurrentTimeMillis()J $%& '( java/util/Mapget&(Ljava/lang/Object;)Ljava/lang/Object;*java/lang/Long
), -" longValue<00>`1&java/util/concurrent/atomic/AtomicLong
03 4(J)V $6 78put8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
): ;<valueOf(J)Ljava/lang/Long;
0> ?"incrementAndGet A BCoutLjava/io/PrintStream;E FGmakeConcatWithConstants'(Ljava/lang/String;J)Ljava/lang/String;
IJK LMjava/io/PrintStreamprintln(Ljava/lang/String;)VOrateLimitExceededQ FR((Ljava/lang/String;JJ)Ljava/lang/String; TUV WX(com/opensymphony/xwork2/ActionInvocationinvoke()Ljava/lang/String; TZ [\getInvocationContext)()Lcom/opensymphony/xwork2/ActionContext;^ org/apache/struts2/StrutsStatics`5com.opensymphony.xwork2.dispatcher.HttpServletRequest
bcd 'e%com/opensymphony/xwork2/ActionContext&(Ljava/lang/String;)Ljava/lang/Object;g%javax/servlet/http/HttpServletRequestiX-Forwarded-For fk lm getHeader&(Ljava/lang/String;)Ljava/lang/String;
opq rsjava/lang/StringisEmpty()Zuunknown
ow xyequalsIgnoreCase(Ljava/lang/String;)Z{ X-Real-IP f} ~X getRemoteAddr<00>,
o<00> <00><00>contains(Ljava/lang/CharSequence;)Z
o<00> <00><00>split'(Ljava/lang/String;)[Ljava/lang/String;
o<00> <00>Xtrim SignatureKLjava/util/Map<Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicLong;>;3Ljava/util/Map<Ljava/lang/String;Ljava/lang/Long;>;CodeLineNumberTableLocalVariableTablethis6Lcom/example/struts2/interceptor/RateLimitInterceptor; intercept
invocation*Lcom/opensymphony/xwork2/ActionInvocation;clientIpLjava/lang/String; currentTime
lastAccessLjava/lang/Long;count(Ljava/util/concurrent/atomic/AtomicLong; currentCount StackMapTable
Exceptions<00>java/lang/Exceptioncontext'Lcom/opensymphony/xwork2/ActionContext;request'Ljavax/servlet/http/HttpServletRequest;ipsetMaxRequestsPerMinutemax
SourceFileRateLimitInterceptor.javaBootstrapMethods<00>2[RateLimitInterceptor] IP:  超过限流阈值: <00>.[RateLimitInterceptor] IP:  请求计数: /<00>
<00><00><00> F<00>$java/lang/invoke/StringConcatFactory<00>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; InnerClasses<00>%java/lang/invoke/MethodHandles$Lookup<00>java/lang/invoke/MethodHandlesLookup! <00><00><00><00><00>X"*<2A>*<2A>Y<> <09>
*<2A>Y<> <09>*<13><15><00><00> "<00><00><00><00>H <00>*+<2B>M<>B*<2A>,<2C>#<00>):<05>!<05>+e.<2E><>%*<2A>
,<2C>0Y <09>2<>5W*<2A>,!<21>9<>5W*<2A>
,<2C>#<00>0:<06>=7*<2A><15><><14>@,<07>D<00>HN<><4E>@,*<2A><15>P<00>H+<2B>S<00><00>6 "
#&,'?(N+],d.n/|14<00>7<00>H<00><00><00><00><00><00><00><00><00>
<00><00><00><00>];<00><00>d4<00><00><03>,o)!<21>00<00><00><00> {+<2B>YM,_<>a<>fN-h<>j:<04><04>n<> t<04>v<> -z<>j:<04><04>n<> t<04>v<> -<2D>|:<04><><00><><><00>2<><00>:<04><00>. >?
@BC2D<FSG[KjLxO<00>4{<00><00>{<00><00>t<00><00>j<00><00>`<00><00><00><05>2bfo <00>4<00>>*<1F><15><00>
TU<00><00><00><00><00><00><00><00><00><00><00><00>
<00><00><00>