From 0860e0c294880b531c6cc7b7fcedb8ab45b87227 Mon Sep 17 00:00:00 2001 From: Marc Giffing Date: Mon, 11 Mar 2024 20:12:50 +0100 Subject: [PATCH] Support for Method level @RateLimiting annoation #250 --- .../ehcache/EhcacheGeneralSuiteTest.java | 2 - .../post_execution_condition.plantuml | 47 ++++++++++-------- .../doc/plantuml/post_execution_condition.png | Bin 30956 -> 36049 bytes 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/examples/ehcache/src/test/java/com/giffing/bucket4j/spring/boot/starter/examples/ehcache/EhcacheGeneralSuiteTest.java b/examples/ehcache/src/test/java/com/giffing/bucket4j/spring/boot/starter/examples/ehcache/EhcacheGeneralSuiteTest.java index 7821b066..dcfd47e8 100644 --- a/examples/ehcache/src/test/java/com/giffing/bucket4j/spring/boot/starter/examples/ehcache/EhcacheGeneralSuiteTest.java +++ b/examples/ehcache/src/test/java/com/giffing/bucket4j/spring/boot/starter/examples/ehcache/EhcacheGeneralSuiteTest.java @@ -1,6 +1,5 @@ package com.giffing.bucket4j.spring.boot.starter.examples.ehcache; -import com.giffing.bucket4j.spring.boot.starter.general.tests.filter.method.MethodTestSuite; import com.giffing.bucket4j.spring.boot.starter.general.tests.filter.servlet.ServletTestSuite; import org.junit.platform.suite.api.SelectClasses; import org.junit.platform.suite.api.Suite; @@ -8,7 +7,6 @@ @Suite @SelectClasses({ ServletTestSuite.class, - MethodTestSuite.class, }) public class EhcacheGeneralSuiteTest { } diff --git a/src/main/doc/plantuml/post_execution_condition.plantuml b/src/main/doc/plantuml/post_execution_condition.plantuml index 7f35233f..22c89377 100644 --- a/src/main/doc/plantuml/post_execution_condition.plantuml +++ b/src/main/doc/plantuml/post_execution_condition.plantuml @@ -1,30 +1,35 @@ @startuml -== First Request - 1 Token available == - -User -> Bucket4jFilter: webRequest -box "Webserver" #LightBlue -participant Bucket4jFilter -participant SpringSecurityFilter - -Bucket4jFilter -> Bucket4jFilter : check remaining tokens -Bucket4jFilter -> SpringSecurityFilter : tokens available proceed -SpringSecurityFilter -> SpringSecurityFilter : authenticate -SpringSecurityFilter -> Bucket4jFilter : authentication Failed 401 -Bucket4jFilter -> Bucket4jFilter : if response status 401 consume token -Bucket4jFilter -> User : response 401 -end box +User -> Bucket4jFilter: request + +box "Webserver" #f5e4e4 + + Bucket4jFilter -> Bucket4jFilter : estimate_remaining_tokens + participant Bucket4jFilter + participant SpringSecurityFilter + alt 1 token available + + note right of Bucket4jFilter: There is one token available. \nThe request will not be aborted + Bucket4jFilter -> SpringSecurityFilter : request + SpringSecurityFilter -> SpringSecurityFilter : authenticate + SpringSecurityFilter -> Bucket4jFilter : response(401) + alt HTTP Response Status == 401 + note right of Bucket4jFilter: The token will only be consumed\n if the HTTP Status is 401\n + Bucket4jFilter -> Bucket4jFilter : consume_token + end + Bucket4jFilter -> User : response(401) + + else 0 token available + note right of Bucket4jFilter: The token was consumed \nbecause of the HTTP Response Status 401 + Bucket4jFilter -> Bucket4jFilter : reject request + Bucket4jFilter -> User : response\n(429 Too Many Requests) + end + -== Second Request - 0 Token available == -User -> Bucket4jFilter: webRequest -box "Webserver" #LightBlue -participant Bucket4jFilter -participant SpringSecurityFilter -Bucket4jFilter -> Bucket4jFilter : check remaining tokens -> no token available -Bucket4jFilter -> User : reject request 429 end box + @enduml \ No newline at end of file diff --git a/src/main/doc/plantuml/post_execution_condition.png b/src/main/doc/plantuml/post_execution_condition.png index 8490255a071f57d27cd9cc8fb1639852e6f2eb32..31f3f8cb589f70a009c6e43f6b50a860fe11ff23 100644 GIT binary patch literal 36049 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