diff --git a/build b/build index 0aeb548..aa92725 100644 --- a/build +++ b/build @@ -1 +1 @@ -74 \ No newline at end of file +76 \ No newline at end of file diff --git a/openpapi/ucentralsec/owsec.yaml b/openpapi/ucentralsec/owsec.yaml index d86e47a..13f6f99 100644 --- a/openpapi/ucentralsec/owsec.yaml +++ b/openpapi/ucentralsec/owsec.yaml @@ -62,6 +62,7 @@ components: - 7 # ACCESS_DENIED, - 8 # INVALID_TOKEN - 9 # expired token + - 10 # rate limit exceeded ErrorDetails: type: string ErrorDescription: diff --git a/src/RESTAPI/RESTAPI_oauth2Handler.h b/src/RESTAPI/RESTAPI_oauth2Handler.h index 16608cc..ea19b22 100644 --- a/src/RESTAPI/RESTAPI_oauth2Handler.h +++ b/src/RESTAPI/RESTAPI_oauth2Handler.h @@ -21,7 +21,7 @@ namespace OpenWifi { Poco::Net::HTTPRequest::HTTP_GET, Poco::Net::HTTPRequest::HTTP_OPTIONS}, Server, - Internal, false, true , RateLimit{.Interval=2000,.MaxCalls=10}) {} + Internal, false, true , RateLimit{.Interval=1000,.MaxCalls=10}) {} static const std::list PathName() { return std::list{"/api/v1/oauth2/{token}","/api/v1/oauth2"}; }; void DoGet() final; void DoPost() final; diff --git a/src/framework/MicroService.h b/src/framework/MicroService.h index c78c9e9..51991cd 100644 --- a/src/framework/MicroService.h +++ b/src/framework/MicroService.h @@ -81,7 +81,8 @@ namespace OpenWifi { INTERNAL_ERROR, ACCESS_DENIED, INVALID_TOKEN, - EXPIRED_TOKEN + EXPIRED_TOKEN, + RATE_LIMIT_EXCEEDED }; class AppServiceRegistry { @@ -1524,8 +1525,9 @@ namespace OpenWifi { Request = &RequestIn; Response = &ResponseIn; - if(RateLimited_ && RESTAPI_RateLimiter()->IsRateLimited(RequestIn,MyRates_.Interval, MyRates_.MaxCalls)) - return; + if(RateLimited_ && RESTAPI_RateLimiter()->IsRateLimited(RequestIn,MyRates_.Interval, MyRates_.MaxCalls)) { + return UnAuthorized("Rate limit exceeded.",RATE_LIMIT_EXCEEDED); + } if (!ContinueProcessing()) return;