Skip to content

Commit

Permalink
Added RateLimitExceeded event
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Buhr committed Oct 23, 2014
1 parent e3973f2 commit 81e4bc2
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
9 changes: 9 additions & 0 deletions event_system.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const (
// Register new event types here
const (
EVENT_QuotaExceeded TykEvent = "QuotaExceeded"
EVENT_RateLimitExceeded TykEvent = "RatelimitExceeded"
)

// EventMetaDefault is a standard embedded struct to be used with custom event metadata types, gives an interface for
Expand All @@ -32,6 +33,14 @@ type EVENT_QuotaExceededMeta struct {
Key string
}

// EVENT_RateLimitExceededMeta is the metadata structure for a rate limit exceeded event (EVENT_QuotaExceeded)
type EVENT_RateLimitExceededMeta struct {
EventMetaDefault
Path string
Origin string
Key string
}

// EventMessage is a standard form to send event data to handlers
type EventMessage struct {
EventType TykEvent
Expand Down
9 changes: 9 additions & 0 deletions middleware_rate_limiting.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,15 @@ func (k *RateLimitAndQuotaCheck) ProcessRequest(w http.ResponseWriter, r *http.R
"key": authHeaderValue,
}).Info("Key rate limit exceeded.")

// Fire a rate limit exceeded event
go k.TykMiddleware.FireEvent(EVENT_RateLimitExceeded,
EVENT_RateLimitExceededMeta{
EventMetaDefault: EventMetaDefault{Message: "Key Rate Limit Exceeded"},
Path: r.URL.Path,
Origin: r.RemoteAddr,
Key: authHeaderValue,
})

return errors.New("Rate limit exceeded"), 403

} else if reason == 2 {
Expand Down

0 comments on commit 81e4bc2

Please sign in to comment.