diff --git a/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/KeycloakApiService.java b/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/KeycloakApiService.java index e46070b2b70cb89ed772310d490d513d16fe8f1d..5855bd35e91611282b3e279b313024a474132d38 100644 --- a/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/KeycloakApiService.java +++ b/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/KeycloakApiService.java @@ -108,7 +108,7 @@ class KeycloakApiService { void tryUpdateUserResource(UserResource userResource, UserRepresentation userRepresentation, String attributeName) { try { - userResource.update(new OlderUserRepresentation(userRepresentation)); + userResource.update(userRepresentation); } catch (BadRequestException e) { LOG.warn("Could not update user attribute {} in Keycloak.", attributeName, e); } diff --git a/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/OlderUserRepresentation.java b/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/OlderUserRepresentation.java deleted file mode 100644 index 7ba8ca446052f28aa1724cdd2904bda4dddbe7dc..0000000000000000000000000000000000000000 --- a/user-manager-server/src/main/java/de/ozgcloud/user/keycloak/OlderUserRepresentation.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.ozgcloud.user.keycloak; - -import org.keycloak.representations.idm.UserProfileMetadata; -import org.keycloak.representations.idm.UserRepresentation; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -/** - * This is a user representation which works with currently used Keycloak version 20.0.3 Because of Quarkus upgrade to 3.5.0 the keycloak admin client - * was updated to 22.0.5. The reason for that is the new resteasy client based on Jakarata EE 10 (jakarta.ws.rs-api). Keycloak admin client 20 .0.3 is - * based on Jersey (javax.ws.rs-api). What we do here is simple ignoring one field added in the newer version of Keycloak in order for entity to be - * processable by the older version. Once Keycloak will be upgraded we can remove this class. - * - * The workaround was discussed with Quarkus team https://github.com/quarkusio/quarkus/discussions/36766 - */ -class OlderUserRepresentation extends UserRepresentation { - - @JsonIgnore - private UserProfileMetadata userProfileMetadata; - - public OlderUserRepresentation(UserRepresentation origin) { - setAttributes(origin.getAttributes()); - setClientRoles(origin.getClientRoles()); - setEmail(origin.getEmail()); - setId(origin.getId()); - setCreatedTimestamp(origin.getCreatedTimestamp()); - setFirstName(origin.getFirstName()); - setLastName(origin.getLastName()); - setUsername(origin.getUsername()); - setAccess(origin.getAccess()); - setClientConsents(origin.getClientConsents()); - setCredentials(origin.getCredentials()); - setDisableableCredentialTypes(origin.getDisableableCredentialTypes()); - setEmailVerified(origin.isEmailVerified()); - setEnabled(origin.isEnabled()); - setFederatedIdentities(origin.getFederatedIdentities()); - setFederationLink(origin.getFederationLink()); - setGroups(origin.getGroups()); - setNotBefore(origin.getNotBefore()); - setOrigin(origin.getOrigin()); - setRealmRoles(origin.getRealmRoles()); - setRequiredActions(origin.getRequiredActions()); - setSelf(origin.getSelf()); - setServiceAccountClientId(origin.getServiceAccountClientId()); - setSocialLinks(origin.getSocialLinks()); - setTotp(origin.isEmailVerified()); - } -} diff --git a/user-manager-server/src/test/java/de/ozgcloud/user/keycloak/KeycloakApiServiceTest.java b/user-manager-server/src/test/java/de/ozgcloud/user/keycloak/KeycloakApiServiceTest.java index e74d6d994395f1d4a705e7aee75fb281abf88e24..5eefc219380cb42188662efbbf78c10eacf3c5cc 100644 --- a/user-manager-server/src/test/java/de/ozgcloud/user/keycloak/KeycloakApiServiceTest.java +++ b/user-manager-server/src/test/java/de/ozgcloud/user/keycloak/KeycloakApiServiceTest.java @@ -276,7 +276,7 @@ class KeycloakApiServiceTest { @Test void shouldCatchBadRequestException() { when(userRepresentation.firstAttribute(ATTRIBUTE_NAME_USER_ID)).thenReturn(NEW_USER_ID); - doThrow(new BadRequestException("error message")).when(userResource).update(any(OlderUserRepresentation.class)); + doThrow(new BadRequestException("error message")).when(userResource).update(any(UserRepresentation.class)); assertThatCode( () -> service.updateAttribute(KEYCLOAK_USER_ID, ATTRIBUTE_NAME_USER_ID, ATTRIBUTE_VALUE_USER_ID)).doesNotThrowAnyException(); @@ -298,7 +298,7 @@ class KeycloakApiServiceTest { void shouldUpdateUserResource() { service.tryUpdateUserResource(userResource, userRepresentation, ATTRIBUTE_NAME_USER_ID); - verify(userResource).update(any(OlderUserRepresentation.class)); + verify(userResource).update(any(UserRepresentation.class)); } @Test