Merge pull request #3611 from patriot1burke/master

KEYCLOAK-3620
This commit is contained in:
Bill Burke authored and GitHub committed 2016-12-06 08:18:36 -05:00
commit 77d17de14d
6 files changed
+195 -20

No files matched your search

@@ -118,7 +118,13 @@ public class ComponentResource {
List<ComponentRepresentation> reps = new LinkedList<>();
for (ComponentModel component : components) {
if (name != null && !name.equals(component.getName())) continue;
ComponentRepresentation rep = ModelToRepresentation.toRepresentation(session, component, false);
ComponentRepresentation rep = null;
try {
rep = ModelToRepresentation.toRepresentation(session, component, false);
} catch (Exception e) {
logger.error("Failed to get component list for component model" + component.getName() + "of realm " + realm.getName());
rep = ModelToRepresentation.toRepresentationWithoutConfig(component);
}
reps.add(rep);
}
return reps;
@@ -74,17 +74,6 @@ public class UserStorageManager implements UserProvider, OnUserCache {
return realm.getUserStorageProviders();
}
public static <T> T getFirstStorageProvider(KeycloakSession session, RealmModel realm, Class<T> type) {
for (UserStorageProviderModel model : getStorageProviders(realm)) {
UserStorageProviderFactory factory = (UserStorageProviderFactory)session.getKeycloakSessionFactory().getProviderFactory(UserStorageProvider.class, model.getProviderId());
if (Types.supports(type, factory, UserStorageProviderFactory.class)) {
return type.cast(getStorageProviderInstance(session, model, factory));
}
}
return null;
}
public static UserStorageProvider getStorageProviderInstance(KeycloakSession session, UserStorageProviderModel model, UserStorageProviderFactory factory) {
UserStorageProvider instance = (UserStorageProvider)session.getAttribute(model.getId());
if (instance != null) return instance;
@@ -99,6 +88,10 @@ public class UserStorageManager implements UserProvider, OnUserCache {
List<T> list = new LinkedList<>();
for (UserStorageProviderModel model : getStorageProviders(realm)) {
UserStorageProviderFactory factory = (UserStorageProviderFactory) session.getKeycloakSessionFactory().getProviderFactory(UserStorageProvider.class, model.getProviderId());
if (factory == null) {
logger.warnv("Configured UserStorageProvider {0} of provider id {1} does not exist in realm {2}", model.getName(), model.getProviderId(), realm.getName());
continue;
}
if (Types.supports(type, factory, UserStorageProviderFactory.class)) {
list.add(type.cast(getStorageProviderInstance(session, model, factory)));
}