From c06cd98a2ed4426c258a76edc3d090c2ae8ac677 Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Fri, 28 Jun 2024 07:58:15 +0300 Subject: [PATCH] src/app/core: forward client user-agent Forward the client's user-agent instead of sending Node's. (cherry picked from commit 5b2966cf488f74bc2646c737fa7006afd38f979c) --- .../forward-client-ip/forward-client-ip.interceptor.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/core/forward-client-ip/forward-client-ip.interceptor.ts b/src/app/core/forward-client-ip/forward-client-ip.interceptor.ts index 037f690057..7fe4263d46 100644 --- a/src/app/core/forward-client-ip/forward-client-ip.interceptor.ts +++ b/src/app/core/forward-client-ip/forward-client-ip.interceptor.ts @@ -27,6 +27,14 @@ export class ForwardClientIpInterceptor implements HttpInterceptor { */ intercept(httpRequest: HttpRequest, next: HttpHandler): Observable> { const clientIp = this.req.get('x-forwarded-for') || this.req.connection.remoteAddress; - return next.handle(httpRequest.clone({ setHeaders: { 'X-Forwarded-For': clientIp } })); + const headers = { 'X-Forwarded-For': clientIp }; + + // if the request has a user-agent retain it + const userAgent = this.req.get('user-agent'); + if (userAgent) { + headers['User-Agent'] = userAgent; + } + + return next.handle(httpRequest.clone({ setHeaders: headers })); } }