@Override public RequiredActionProviderModel getRequiredActionProviderById(String id) { RequiredActionProviderEntity entity = em.find(RequiredActionProviderEntity.class, id); if (entity == null) return null; return entityToModel(entity); }
@Override public ComponentModel getComponent(String id) { ComponentEntity c = em.find(ComponentEntity.class, id); if (c == null) return null; return entityToModel(c); }
@Override public AuthenticationFlowModel getAuthenticationFlowById(String id) { AuthenticationFlowEntity entity = em.find(AuthenticationFlowEntity.class, id); if (entity == null) return null; return entityToModel(entity); }
@Override public AuthenticationExecutionModel getAuthenticationExecutionById(String id) { AuthenticationExecutionEntity entity = em.find(AuthenticationExecutionEntity.class, id); if (entity == null) return null; return entityToModel(entity); }
@Override public AuthenticatorConfigModel getAuthenticatorConfigById(String id) { AuthenticatorConfigEntity entity = em.find(AuthenticatorConfigEntity.class, id); if (entity == null) return null; return entityToModel(entity); }
@Override public List<IdentityProviderModel> getIdentityProviders() { List<IdentityProviderEntity> entities = realm.getIdentityProviders(); if (entities.isEmpty()) return Collections.EMPTY_LIST; List<IdentityProviderModel> identityProviders = new ArrayList<IdentityProviderModel>(); for (IdentityProviderEntity entity: entities) { IdentityProviderModel identityProviderModel = entityToModel(entity); identityProviders.add(identityProviderModel); } return Collections.unmodifiableList(identityProviders); }
@Override public IdentityProviderMapperModel getIdentityProviderMapperByName(String alias, String name) { IdentityProviderMapperEntity entity = getIdentityProviderMapperEntityByName(alias, name); if (entity == null) return null; return entityToModel(entity); }
@Override public List<AuthenticatorConfigModel> getAuthenticatorConfigs() { Collection<AuthenticatorConfigEntity> entities = realm.getAuthenticatorConfigs(); if (entities.isEmpty()) return Collections.EMPTY_LIST; List<AuthenticatorConfigModel> authenticators = new LinkedList<>(); for (AuthenticatorConfigEntity entity : entities) { authenticators.add(entityToModel(entity)); } return Collections.unmodifiableList(authenticators); }
@Override public Set<IdentityProviderMapperModel> getIdentityProviderMappers() { Collection<IdentityProviderMapperEntity> entities = this.realm.getIdentityProviderMappers(); if (entities.isEmpty()) return Collections.EMPTY_SET; Set<IdentityProviderMapperModel> mappings = new HashSet<IdentityProviderMapperModel>(); for (IdentityProviderMapperEntity entity : entities) { IdentityProviderMapperModel mapping = entityToModel(entity); mappings.add(mapping); } return Collections.unmodifiableSet(mappings); }
@Override public IdentityProviderMapperModel getIdentityProviderMapperById(String id) { IdentityProviderMapperEntity entity = getIdentityProviderMapperEntity(id); if (entity == null) return null; return entityToModel(entity); }
@Override public List<RequiredActionProviderModel> getRequiredActionProviders() { Collection<RequiredActionProviderEntity> entities = realm.getRequiredActionProviders(); if (entities.isEmpty()) return Collections.EMPTY_LIST; List<RequiredActionProviderModel> actions = new LinkedList<>(); for (RequiredActionProviderEntity entity : entities) { actions.add(entityToModel(entity)); } Collections.sort(actions, RequiredActionProviderModel.RequiredActionComparator.SINGLETON); return Collections.unmodifiableList(actions); }
@Override public Set<IdentityProviderMapperModel> getIdentityProviderMappersByAlias(String brokerAlias) { Set<IdentityProviderMapperModel> mappings = new HashSet<IdentityProviderMapperModel>(); for (IdentityProviderMapperEntity entity : this.realm.getIdentityProviderMappers()) { if (!entity.getIdentityProviderAlias().equals(brokerAlias)) { continue; } IdentityProviderMapperModel mapping = entityToModel(entity); mappings.add(mapping); } return mappings; }
@Override public void removeIdentityProviderByAlias(String alias) { for (IdentityProviderEntity entity : realm.getIdentityProviders()) { if (entity.getAlias().equals(alias)) { IdentityProviderModel model = entityToModel(entity); em.remove(entity); em.flush(); session.getKeycloakSessionFactory().publish(new RealmModel.IdentityProviderRemovedEvent() { @Override public RealmModel getRealm() { return RealmAdapter.this; } @Override public IdentityProviderModel getRemovedIdentityProvider() { return model; } @Override public KeycloakSession getKeycloakSession() { return session; } }); } } }
@Override public IdentityProviderMapperModel addIdentityProviderMapper(IdentityProviderMapperModel model) { if (getIdentityProviderMapperByName(model.getIdentityProviderAlias(), model.getName()) != null) { throw new RuntimeException("identity provider mapper name must be unique per identity provider"); } String id = KeycloakModelUtils.generateId(); IdentityProviderMapperEntity entity = new IdentityProviderMapperEntity(); entity.setId(id); entity.setName(model.getName()); entity.setIdentityProviderAlias(model.getIdentityProviderAlias()); entity.setIdentityProviderMapper(model.getIdentityProviderMapper()); entity.setRealm(this.realm); entity.setConfig(model.getConfig()); em.persist(entity); this.realm.getIdentityProviderMappers().add(entity); return entityToModel(entity); }
@Override public void updateComponent(ComponentModel component) { ComponentUtil.getComponentFactory(session, component).validateConfiguration(session, this, component); ComponentEntity c = em.find(ComponentEntity.class, component.getId()); if (c == null) return; ComponentModel old = entityToModel(c); c.setName(component.getName()); c.setProviderId(component.getProviderId()); c.setProviderType(component.getProviderType()); c.setParentId(component.getParentId()); c.setSubType(component.getSubType()); setConfig(component, c); ComponentUtil.notifyUpdated(session, this, old, component); }