232 TypedQuery<PersistentUserSessionEntity> query =
em.createNamedQuery(
"findUserSessions", PersistentUserSessionEntity.class);
233 query.setParameter(
"offline", offlineStr);
235 if (firstResult != -1) {
236 query.setFirstResult(firstResult);
238 if (maxResults != -1) {
239 query.setMaxResults(maxResults);
242 List<PersistentUserSessionEntity> results = query.getResultList();
243 List<UserSessionModel> result =
new ArrayList<>();
244 List<String> userSessionIds =
new ArrayList<>();
245 for (PersistentUserSessionEntity entity : results) {
254 }
catch (Exception e) {
255 logger.debugv(e,
"Failed to load user with id {0}", entity.getUserId());
260 userSessionIds.add(entity.getUserSessionId());
263 Set<String> removedClientUUIDs =
new HashSet<>();
265 if (!userSessionIds.isEmpty()) {
266 TypedQuery<PersistentClientSessionEntity> query2 =
em.createNamedQuery(
"findClientSessionsByUserSessions", PersistentClientSessionEntity.class);
267 query2.setParameter(
"userSessionIds", userSessionIds);
268 query2.setParameter(
"offline", offlineStr);
269 List<PersistentClientSessionEntity> clientSessions = query2.getResultList();
273 for (UserSessionModel ss : result) {
274 PersistentUserSessionAdapter userSession = (PersistentUserSessionAdapter) ss;
275 Map<String, AuthenticatedClientSessionModel> currentClientSessions = userSession.getAuthenticatedClientSessions();
278 while (next && j < clientSessions.size()) {
279 PersistentClientSessionEntity clientSession = clientSessions.get(j);
280 if (clientSession.getUserSessionId().equals(userSession.getId())) {
281 PersistentAuthenticatedClientSessionAdapter clientSessAdapter =
toAdapter(userSession.getRealm(), userSession, clientSession);
284 if (clientSessAdapter.getClient() == null) {
285 removedClientUUIDs.add(clientSession.getClientId());
287 currentClientSessions.put(clientSession.getClientId(), clientSessAdapter);
297 for (String clientUUID : removedClientUUIDs) {
String offlineToString(boolean offline)
Definition: JpaUserSessionPersisterProvider.java:346
RealmModel getRealm(String id)
void onUserRemoved(RealmModel realm, UserModel user)
Definition: JpaUserSessionPersisterProvider.java:207
List< UserSessionModel > loadUserSessions(int firstResult, int maxResults, boolean offline)
Definition: JpaUserSessionPersisterProvider.java:229
final KeycloakSession session
Definition: JpaUserSessionPersisterProvider.java:51
final EntityManager em
Definition: JpaUserSessionPersisterProvider.java:52
static final Logger logger
Definition: JpaUserSessionPersisterProvider.java:49
PersistentUserSessionAdapter toAdapter(RealmModel realm, PersistentUserSessionEntity entity)
Definition: JpaUserSessionPersisterProvider.java:304
UserModel getUserById(String id, RealmModel realm)
void onClientRemoved(RealmModel realm, ClientModel client)
Definition: JpaUserSessionPersisterProvider.java:188