Skip to content

Commit 86f5d37

Browse files
committed
ratelimiter using only HttpClientAddressResolver
Signed-off-by: munishchouhan <hrma017@gmail.com>
1 parent 7768095 commit 86f5d37

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

src/main/groovy/io/seqera/wave/filter/RateLimiterFilter.groovy

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import io.github.resilience4j.ratelimiter.internal.AtomicRateLimiter.AtomicRateL
2828
import io.micronaut.cache.SyncCache
2929
import io.micronaut.context.annotation.Context
3030
import io.micronaut.context.annotation.Requires
31-
import io.micronaut.core.annotation.Nullable
3231
import io.micronaut.http.HttpHeaders
3332
import io.micronaut.http.HttpRequest
3433
import io.micronaut.http.HttpResponse
@@ -72,7 +71,6 @@ class RateLimiterFilter implements HttpServerFilter {
7271
private final SyncCache<AtomicRateLimiter> limiters
7372

7473
@Inject
75-
@Nullable
7674
private HttpClientAddressResolver addressResolver
7775

7876
/**
@@ -129,13 +127,13 @@ class RateLimiterFilter implements HttpServerFilter {
129127
}
130128

131129
private String getKey(HttpRequest<?> request) {
132-
// When addressResolver is available (alb profile enabled), use it to trust X-Forwarded-For from ALB.
133-
final address = addressResolver
134-
? addressResolver.resolve(request)
135-
: request.getRemoteAddress().getAddress().getHostAddress()
130+
// Use HttpClientAddressResolver which:
131+
// - In default mode: returns socket address (secure, ignores headers)
132+
// - In ALB mode (when client-address-header configured): trusts X-Forwarded-For from ALB
133+
final address = addressResolver.resolve(request)
136134

137135
if( log.isTraceEnabled() ) {
138-
log.trace "Filter request\n- uri: ${request.getUri()}\n- address: ${address}\n- resolver: ${addressResolver ? 'enabled' : 'disabled'}\n- headers: ${request.getHeaders().asMap()}"
136+
log.trace "Filter request\n- uri: ${request.getUri()}\n- address: ${address}\n- headers: ${request.getHeaders().asMap()}"
139137
}
140138
return address
141139
}

0 commit comments

Comments
 (0)