From fb33cbc2bdcbe03a4668d90ca67d656ebea2fc8d Mon Sep 17 00:00:00 2001 From: vramik Date: Thu, 8 Sep 2022 11:36:44 +0200 Subject: [PATCH] Set correct entity version when adding a child entity with its own entity versioning Closes #14273 --- .../entity/JpaRootAuthenticationSessionEntity.java | 2 +- .../map/storage/jpa/realm/entity/JpaRealmEntity.java | 6 +++--- .../models/map/storage/jpa/user/entity/JpaUserEntity.java | 8 ++++---- .../jpa/userSession/entity/JpaUserSessionEntity.java | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/authSession/entity/JpaRootAuthenticationSessionEntity.java b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/authSession/entity/JpaRootAuthenticationSessionEntity.java index 79514e1ca28..10859c9aea0 100644 --- a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/authSession/entity/JpaRootAuthenticationSessionEntity.java +++ b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/authSession/entity/JpaRootAuthenticationSessionEntity.java @@ -200,7 +200,7 @@ public class JpaRootAuthenticationSessionEntity extends AbstractRootAuthenticati public void addAuthenticationSession(MapAuthenticationSessionEntity authenticationSession) { JpaAuthenticationSessionEntity jpaAuthSession = JpaAuthenticationSessionEntity.class.cast(CLONER.from(authenticationSession)); jpaAuthSession.setParent(this); - jpaAuthSession.setEntityVersion(this.getEntityVersion()); + jpaAuthSession.setEntityVersion(Constants.CURRENT_SCHEMA_VERSION_AUTH_SESSION); authSessions.add(jpaAuthSession); } diff --git a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/realm/entity/JpaRealmEntity.java b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/realm/entity/JpaRealmEntity.java index b08b136d659..37fdd9a269e 100644 --- a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/realm/entity/JpaRealmEntity.java +++ b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/realm/entity/JpaRealmEntity.java @@ -55,10 +55,10 @@ import org.keycloak.models.map.realm.entity.MapOTPPolicyEntity; import org.keycloak.models.map.realm.entity.MapRequiredActionProviderEntity; import org.keycloak.models.map.realm.entity.MapRequiredCredentialEntity; import org.keycloak.models.map.realm.entity.MapWebAuthnPolicyEntity; +import org.keycloak.models.map.storage.jpa.Constants; import org.keycloak.models.map.storage.jpa.JpaRootVersionedEntity; import org.keycloak.models.map.storage.jpa.hibernate.jsonb.JsonbType; -import static org.keycloak.models.map.storage.jpa.Constants.CURRENT_SCHEMA_VERSION_REALM; import static org.keycloak.models.map.storage.jpa.JpaMapStorageProviderFactory.CLONER; /** @@ -161,7 +161,7 @@ public class JpaRealmEntity extends MapRealmEntity.AbstractRealmEntity implement @Override public Integer getCurrentSchemaVersion() { - return CURRENT_SCHEMA_VERSION_REALM; + return Constants.CURRENT_SCHEMA_VERSION_REALM; } @Override @@ -888,7 +888,7 @@ public class JpaRealmEntity extends MapRealmEntity.AbstractRealmEntity implement public void addComponent(MapComponentEntity component) { JpaComponentEntity jpaComponent = JpaComponentEntity.class.cast(CLONER.from(component)); jpaComponent.setParent(this); - jpaComponent.setEntityVersion(this.getEntityVersion()); + jpaComponent.setEntityVersion(Constants.CURRENT_SCHEMA_VERSION_COMPONENT); this.components.add(jpaComponent); } diff --git a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/user/entity/JpaUserEntity.java b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/user/entity/JpaUserEntity.java index df488fe3610..59d425121e3 100644 --- a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/user/entity/JpaUserEntity.java +++ b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/user/entity/JpaUserEntity.java @@ -45,6 +45,7 @@ import org.hibernate.annotations.TypeDef; import org.hibernate.annotations.TypeDefs; import org.keycloak.models.map.common.DeepCloner; import org.keycloak.models.map.common.UuidValidator; +import org.keycloak.models.map.storage.jpa.Constants; import org.keycloak.models.map.storage.jpa.JpaRootVersionedEntity; import org.keycloak.models.map.storage.jpa.hibernate.jsonb.JsonbType; import org.keycloak.models.map.user.MapUserConsentEntity; @@ -52,7 +53,6 @@ import org.keycloak.models.map.user.MapUserCredentialEntity; import org.keycloak.models.map.user.MapUserEntity; import org.keycloak.models.map.user.MapUserFederatedIdentityEntity; -import static org.keycloak.models.map.storage.jpa.Constants.CURRENT_SCHEMA_VERSION_USER; import static org.keycloak.models.map.storage.jpa.JpaMapStorageProviderFactory.CLONER; /** @@ -198,7 +198,7 @@ public class JpaUserEntity extends MapUserEntity.AbstractUserEntity implements J @Override public Integer getCurrentSchemaVersion() { - return CURRENT_SCHEMA_VERSION_USER; + return Constants.CURRENT_SCHEMA_VERSION_USER; } @Override @@ -470,7 +470,7 @@ public class JpaUserEntity extends MapUserEntity.AbstractUserEntity implements J public void addUserConsent(MapUserConsentEntity userConsentEntity) { JpaUserConsentEntity entity = (JpaUserConsentEntity) CLONER.from(userConsentEntity); entity.setParent(this); - entity.setEntityVersion(this.getEntityVersion()); + entity.setEntityVersion(Constants.CURRENT_SCHEMA_VERSION_USER_CONSENT); this.consents.add(entity); } @@ -523,7 +523,7 @@ public class JpaUserEntity extends MapUserEntity.AbstractUserEntity implements J public void addFederatedIdentity(MapUserFederatedIdentityEntity federatedIdentity) { JpaUserFederatedIdentityEntity entity = (JpaUserFederatedIdentityEntity) CLONER.from(federatedIdentity); entity.setParent(this); - entity.setEntityVersion(this.getEntityVersion()); + entity.setEntityVersion(Constants.CURRENT_SCHEMA_VERSION_USER_FEDERATED_IDENTITY); this.federatedIdentities.add(entity); } diff --git a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/userSession/entity/JpaUserSessionEntity.java b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/userSession/entity/JpaUserSessionEntity.java index c8545d424f2..7d09eb47f84 100644 --- a/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/userSession/entity/JpaUserSessionEntity.java +++ b/model/map-jpa/src/main/java/org/keycloak/models/map/storage/jpa/userSession/entity/JpaUserSessionEntity.java @@ -347,7 +347,7 @@ public class JpaUserSessionEntity extends AbstractUserSessionEntity implements J public void addAuthenticatedClientSession(MapAuthenticatedClientSessionEntity clientSession) { JpaClientSessionEntity jpaClientSession = JpaClientSessionEntity.class.cast(CLONER.from(clientSession)); jpaClientSession.setParent(this); - jpaClientSession.setEntityVersion(this.getEntityVersion()); + jpaClientSession.setEntityVersion(Constants.CURRENT_SCHEMA_VERSION_CLIENT_SESSION); clientSessions.add(jpaClientSession); }