fix: getting client real ip
This commit is contained in:
@@ -34,11 +34,8 @@ func (access AccessPolicy) AccessPolicyMiddleware(next http.Handler) http.Handle
|
||||
// Get the client's IP address
|
||||
clientIP, _, err := net.SplitHostPort(getRealIP(r))
|
||||
if err != nil {
|
||||
logger.Error("Unable to parse IP address")
|
||||
RespondWithError(w, http.StatusUnauthorized, "Unable to parse IP address")
|
||||
return
|
||||
clientIP = getRealIP(r)
|
||||
}
|
||||
|
||||
// Check IP against source ranges
|
||||
isAllowed := access.Action != "DENY"
|
||||
for _, entry := range access.SourceRanges {
|
||||
|
||||
@@ -19,6 +19,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/jkaninda/goma-gateway/pkg/logger"
|
||||
"net"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
@@ -51,7 +52,11 @@ func (rl *RateLimiter) RateLimitMiddleware() mux.MiddlewareFunc {
|
||||
}
|
||||
return func(next http.Handler) http.Handler {
|
||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
clientIP := getRealIP(r)
|
||||
// Get the client's IP address
|
||||
clientIP, _, err := net.SplitHostPort(getRealIP(r))
|
||||
if err != nil {
|
||||
clientIP = getRealIP(r)
|
||||
}
|
||||
clientID := fmt.Sprintf("%s-%s", rl.id, clientIP) // Generate client Id, ID+ route ID
|
||||
if rl.redisBased {
|
||||
err := redisRateLimiter(clientID, rl.unit, rl.requests)
|
||||
|
||||
Reference in New Issue
Block a user