diff --git a/connections/mongo/src/main/java/org/keycloak/connections/mongo/DefaultMongoConnectionFactoryProvider.java b/connections/mongo/src/main/java/org/keycloak/connections/mongo/DefaultMongoConnectionFactoryProvider.java index 3c0db050c5..649ad7e2e6 100755 --- a/connections/mongo/src/main/java/org/keycloak/connections/mongo/DefaultMongoConnectionFactoryProvider.java +++ b/connections/mongo/src/main/java/org/keycloak/connections/mongo/DefaultMongoConnectionFactoryProvider.java @@ -28,6 +28,7 @@ public class DefaultMongoConnectionFactoryProvider implements MongoConnectionPro "org.keycloak.models.mongo.keycloak.entities.MongoUserEntity", "org.keycloak.models.mongo.keycloak.entities.MongoRoleEntity", "org.keycloak.models.entities.IdentityProviderEntity", + "org.keycloak.models.entities.ClientIdentityProviderMappingEntity", "org.keycloak.models.entities.RequiredCredentialEntity", "org.keycloak.models.entities.CredentialEntity", "org.keycloak.models.entities.FederatedIdentityEntity", @@ -36,7 +37,8 @@ public class DefaultMongoConnectionFactoryProvider implements MongoConnectionPro "org.keycloak.models.sessions.mongo.entities.MongoUsernameLoginFailureEntity", "org.keycloak.models.sessions.mongo.entities.MongoUserSessionEntity", "org.keycloak.models.sessions.mongo.entities.MongoClientSessionEntity", - "org.keycloak.models.entities.UserFederationProviderEntity" + "org.keycloak.models.entities.UserFederationProviderEntity", + "org.keycloak.models.entities.ProtocolMapperEntity" }; private static final Logger logger = Logger.getLogger(DefaultMongoConnectionFactoryProvider.class); diff --git a/model/api/src/main/java/org/keycloak/models/entities/ClientIdentityProviderMappingEntity.java b/model/api/src/main/java/org/keycloak/models/entities/ClientIdentityProviderMappingEntity.java index a788aacf4b..f1df39f33a 100644 --- a/model/api/src/main/java/org/keycloak/models/entities/ClientIdentityProviderMappingEntity.java +++ b/model/api/src/main/java/org/keycloak/models/entities/ClientIdentityProviderMappingEntity.java @@ -23,7 +23,7 @@ package org.keycloak.models.entities; public class ClientIdentityProviderMappingEntity { private String id; - private Boolean retrieveToken; + private boolean retrieveToken; public String getId() { return this.id; @@ -33,11 +33,11 @@ public class ClientIdentityProviderMappingEntity { this.id = id; } - public Boolean isRetrieveToken() { + public boolean isRetrieveToken() { return this.retrieveToken; } - public void setRetrieveToken(Boolean retrieveToken) { + public void setRetrieveToken(boolean retrieveToken) { this.retrieveToken = retrieveToken; } diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ClientAdapter.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ClientAdapter.java index c0202c1f52..1072181907 100755 --- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ClientAdapter.java +++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ClientAdapter.java @@ -29,14 +29,12 @@ public abstract class ClientAdapter extends A protected final T clientEntity; private final RealmModel realm; protected KeycloakSession session; - private final RealmProvider model; public ClientAdapter(KeycloakSession session, RealmModel realm, T clientEntity, MongoStoreInvocationContext invContext) { super(invContext); this.clientEntity = clientEntity; this.realm = realm; this.session = session; - this.model = session.realms(); } @Override @@ -326,13 +324,14 @@ public abstract class ClientAdapter extends A @Override public void updateAllowedIdentityProviders(List identityProviders) { - List stored = getMongoEntityAsClient().getIdentityProviders(); + List stored = new ArrayList(); for (ClientIdentityProviderMappingModel model : identityProviders) { ClientIdentityProviderMappingEntity entity = new ClientIdentityProviderMappingEntity(); entity.setId(model.getIdentityProvider()); entity.setRetrieveToken(model.isRetrieveToken()); + stored.add(entity); } getMongoEntityAsClient().setIdentityProviders(stored); diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java index d48ae7d898..be033a3e28 100755 --- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java +++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java @@ -910,7 +910,7 @@ public class RealmAdapter extends AbstractMongoAdapter impleme mapping.setConsentRequired(entity.isConsentRequired()); mapping.setConsentText(entity.getConsentText()); Map config = new HashMap(); - if (entity.getConfig() != null) config.putAll(config); + if (entity.getConfig() != null) config.putAll(entity.getConfig()); mapping.setConfig(config); return mapping; } diff --git a/services/src/main/java/org/keycloak/protocol/AbstractLoginProtocolFactory.java b/services/src/main/java/org/keycloak/protocol/AbstractLoginProtocolFactory.java index 7483105a42..88f0f14270 100755 --- a/services/src/main/java/org/keycloak/protocol/AbstractLoginProtocolFactory.java +++ b/services/src/main/java/org/keycloak/protocol/AbstractLoginProtocolFactory.java @@ -1,5 +1,6 @@ package org.keycloak.protocol; +import org.jboss.logging.Logger; import org.keycloak.Config; import org.keycloak.models.KeycloakSession; import org.keycloak.models.KeycloakSessionFactory; @@ -14,6 +15,9 @@ import java.util.List; * @version $Revision: 1 $ */ public abstract class AbstractLoginProtocolFactory implements LoginProtocolFactory { + + private static final Logger logger = Logger.getLogger(AbstractLoginProtocolFactory.class); + @Override public void init(Config.Scope config) { } @@ -27,6 +31,7 @@ public abstract class AbstractLoginProtocolFactory implements LoginProtocolFacto for (RealmModel realm : realms) addDefaults(realm); session.getTransaction().commit(); } catch (Exception e) { + logger.error("Can't add default mappers to realm", e); session.getTransaction().rollback(); } finally { session.close();