From d8ca1b736bb3565a361ee0384fbee51ad44fd87a Mon Sep 17 00:00:00 2001
From: Sebastian-Ion TINCU <Sebastian-Ion.TINCU@ext.ec.europa.eu>
Date: Mon, 24 Jun 2024 16:05:25 +0200
Subject: [PATCH] =?UTF-8?q?EDELIVERY-12752=20UI=20enhancement=C2=A0=20User?=
 =?UTF-8?q?s=20are=20warned=20before=20session=20expire?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fix issue when setting very large timeout session expiration values.
---
 smp-angular/src/app/http/http-session-interceptor.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/smp-angular/src/app/http/http-session-interceptor.ts b/smp-angular/src/app/http/http-session-interceptor.ts
index f6373f390..40dbcdba0 100644
--- a/smp-angular/src/app/http/http-session-interceptor.ts
+++ b/smp-angular/src/app/http/http-session-interceptor.ts
@@ -20,6 +20,7 @@ import {
 export class HttpSessionInterceptor implements HttpInterceptor {
 
   private readonly TIME_BEFORE_EXPIRATION_IN_SECONDS = 60;
+  private readonly MAXIMUM_TIMEOUT_VALUE = 2147483647;
 
   private timerId: number;
   private timerToLogoutId: number;
@@ -34,7 +35,7 @@ export class HttpSessionInterceptor implements HttpInterceptor {
     clearTimeout(this.timerToLogoutId);
     let user = this.securityService.getCurrentUser();
     if (user && user.sessionMaxIntervalTimeoutInSeconds && user.sessionMaxIntervalTimeoutInSeconds > this.TIME_BEFORE_EXPIRATION_IN_SECONDS) {
-      let timeout = (user.sessionMaxIntervalTimeoutInSeconds - this.TIME_BEFORE_EXPIRATION_IN_SECONDS) * 1000;
+      let timeout = Math.min((user.sessionMaxIntervalTimeoutInSeconds - this.TIME_BEFORE_EXPIRATION_IN_SECONDS) * 1000, this.MAXIMUM_TIMEOUT_VALUE);
       this.timerId = setTimeout(() => this.sessionExpiringSoon(user.sessionMaxIntervalTimeoutInSeconds), timeout);
     }
     return next.handle(req);
@@ -54,3 +55,4 @@ export class HttpSessionInterceptor implements HttpInterceptor {
     });
   }
 }
+
-- 
GitLab