From 8d052f015b93b1e737e9a7cbee950a387dd10e88 Mon Sep 17 00:00:00 2001 From: Alexander Schwartz Date: Thu, 28 Aug 2025 14:59:19 +0200 Subject: [PATCH] Avoid deleting old client sessions Closes #41427 Signed-off-by: Alexander Schwartz --- .../sessions/infinispan/InfinispanUserSessionProvider.java | 7 +------ .../ClientSessionPersistentChangelogBasedTransaction.java | 3 +-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/InfinispanUserSessionProvider.java b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/InfinispanUserSessionProvider.java index 7495862f27d..ab285c79c32 100755 --- a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/InfinispanUserSessionProvider.java +++ b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/InfinispanUserSessionProvider.java @@ -398,13 +398,8 @@ public class InfinispanUserSessionProvider implements UserSessionProvider, Sessi return null; } - AuthenticatedClientSessionAdapter clientAdapter = importClientSession((UserSessionAdapter) userSession, clientSession, getTransaction(offline), + return importClientSession((UserSessionAdapter) userSession, clientSession, getTransaction(offline), getClientSessionTransaction(offline), offline, true); - - if (clientAdapter == null) { - persister.removeClientSession(userSession.getId(), client.getId(), offline); - } - return clientAdapter; } private AuthenticatedClientSessionEntity getClientSessionEntity(UUID id, boolean offline) { diff --git a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/changes/ClientSessionPersistentChangelogBasedTransaction.java b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/changes/ClientSessionPersistentChangelogBasedTransaction.java index 97040159384..55033519e96 100644 --- a/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/changes/ClientSessionPersistentChangelogBasedTransaction.java +++ b/model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/changes/ClientSessionPersistentChangelogBasedTransaction.java @@ -125,9 +125,8 @@ public class ClientSessionPersistentChangelogBasedTransaction extends Persistent SessionEntityWrapper authenticatedClientSessionEntitySessionEntityWrapper = importClientSession(realm, client, userSession, clientSession, clientSessionId); if (authenticatedClientSessionEntitySessionEntityWrapper == null) { - LOG.debugf("Client-session not imported from persister. It is going to be removed. userSessionId=%s, clientSessionId=%s, clientId=%s, offline=%s", + LOG.debugf("Client-session not imported from persister. userSessionId=%s, clientSessionId=%s, clientId=%s, offline=%s", userSession.getId(), clientSessionId, client.getId(), offline); - persister.removeClientSession(userSession.getId(), client.getId(), offline); } return authenticatedClientSessionEntitySessionEntityWrapper;