From 939da455d7dfd14ea778ba9916c48da75ce41918 Mon Sep 17 00:00:00 2001 From: Vlasta Ramik Date: Fri, 25 Nov 2016 15:12:38 +0100 Subject: [PATCH] update protocol mappers of clients and client templates for backward compatibility import --- .../migration/migrators/MigrateTo2_3_0.java | 22 ++----------------- .../migration/migrators/MigrationUtils.java | 18 +++++++++++++++ .../models/utils/RepresentationToModel.java | 3 ++- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrateTo2_3_0.java b/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrateTo2_3_0.java index 80862ca4f2..56aee36229 100644 --- a/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrateTo2_3_0.java +++ b/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrateTo2_3_0.java @@ -17,15 +17,11 @@ package org.keycloak.migration.migrators; -import java.util.LinkedList; -import java.util.List; import org.keycloak.migration.ModelVersion; import org.keycloak.models.ClientModel; import org.keycloak.models.ClientTemplateModel; import org.keycloak.models.KeycloakSession; -import org.keycloak.models.ProtocolMapperContainerModel; -import org.keycloak.models.ProtocolMapperModel; import org.keycloak.models.RealmModel; /** @@ -39,29 +35,15 @@ public class MigrateTo2_3_0 implements Migration { public void migrate(KeycloakSession session) { for (RealmModel realm : session.realms().getRealms()) { for (ClientModel client : realm.getClients()) { - updateProtocolMappers(client); + MigrationUtils.updateProtocolMappers(client); } for (ClientTemplateModel clientTemplate : realm.getClientTemplates()) { - updateProtocolMappers(clientTemplate); + MigrationUtils.updateProtocolMappers(clientTemplate); } } } - private void updateProtocolMappers(ProtocolMapperContainerModel client) { - List toUpdate = new LinkedList<>(); - for (ProtocolMapperModel mapper : client.getProtocolMappers()) { - if (!mapper.getConfig().containsKey("userinfo.token.claim") && mapper.getConfig().containsKey("id.token.claim")) { - mapper.getConfig().put("userinfo.token.claim", mapper.getConfig().get("id.token.claim")); - toUpdate.add(mapper); - } - } - - for (ProtocolMapperModel mapper : toUpdate) { - client.updateProtocolMapper(mapper); - } - } - @Override public ModelVersion getVersion() { return VERSION; diff --git a/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java b/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java index ae3a99fa4c..7eb997a0d1 100644 --- a/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java +++ b/server-spi-private/src/main/java/org/keycloak/migration/migrators/MigrationUtils.java @@ -17,10 +17,14 @@ package org.keycloak.migration.migrators; +import java.util.LinkedList; +import java.util.List; import org.keycloak.Config; import org.keycloak.models.AdminRoles; import org.keycloak.models.ClientModel; import org.keycloak.models.Constants; +import org.keycloak.models.ProtocolMapperContainerModel; +import org.keycloak.models.ProtocolMapperModel; import org.keycloak.models.RealmModel; import org.keycloak.models.RequiredActionProviderModel; import org.keycloak.models.RoleModel; @@ -60,5 +64,19 @@ public class MigrationUtils { otpAction.setName("Configure OTP"); } + + public static void updateProtocolMappers(ProtocolMapperContainerModel client) { + List toUpdate = new LinkedList<>(); + for (ProtocolMapperModel mapper : client.getProtocolMappers()) { + if (!mapper.getConfig().containsKey("userinfo.token.claim") && mapper.getConfig().containsKey("id.token.claim")) { + mapper.getConfig().put("userinfo.token.claim", mapper.getConfig().get("id.token.claim")); + toUpdate.add(mapper); + } + } + + for (ProtocolMapperModel mapper : toUpdate) { + client.updateProtocolMapper(mapper); + } + } } diff --git a/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java index 75f46f5d8a..c0bfda13ca 100755 --- a/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java +++ b/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java @@ -1059,7 +1059,7 @@ public class RepresentationToModel { client.addProtocolMapper(toModel(mapper)); } - + MigrationUtils.updateProtocolMappers(client); } @@ -1069,6 +1069,7 @@ public class RepresentationToModel { client.setClientTemplate(template); break; } + MigrationUtils.updateProtocolMappers(template); } }