Details
diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ComponentsResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ComponentsResource.java
index d59c983..90b9d40 100644
--- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ComponentsResource.java
+++ b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ComponentsResource.java
@@ -46,6 +46,12 @@ public interface ComponentsResource {
@Produces(MediaType.APPLICATION_JSON)
public List<ComponentRepresentation> query(@QueryParam("parent") String parent, @QueryParam("type") String type);
+ @GET
+ @Produces(MediaType.APPLICATION_JSON)
+ public List<ComponentRepresentation> query(@QueryParam("parent") String parent,
+ @QueryParam("type") String type,
+ @QueryParam("name") String name);
+
@POST
@Consumes(MediaType.APPLICATION_JSON)
Response add(ComponentRepresentation rep);
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
index 1c4393d..417a38b 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
@@ -1030,6 +1030,7 @@ public class RealmAdapter implements RealmModel, JpaModel<RealmEntity> {
for (IdentityProviderEntity entity : realm.getIdentityProviders()) {
if (entity.getAlias().equals(alias)) {
+ IdentityProviderModel model = entityToModel(entity);
em.remove(entity);
em.flush();
@@ -1042,7 +1043,7 @@ public class RealmAdapter implements RealmModel, JpaModel<RealmEntity> {
@Override
public IdentityProviderModel getRemovedIdentityProvider() {
- return entityToModel(entity);
+ return model;
}
@Override
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 077296d..f79bbda 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
@@ -840,6 +840,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
public void removeIdentityProviderByAlias(String alias) {
for (IdentityProviderEntity entity : realm.getIdentityProviders()) {
if (entity.getAlias().equals(alias)) {
+ IdentityProviderModel model = entityToModel(entity);
realm.getIdentityProviders().remove(entity);
updateRealm();
@@ -852,7 +853,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
@Override
public IdentityProviderModel getRemovedIdentityProvider() {
- return entityToModel(entity);
+ return model;
}
@Override
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/ComponentResource.java b/services/src/main/java/org/keycloak/services/resources/admin/ComponentResource.java
index d3ac358..1b50523 100644
--- a/services/src/main/java/org/keycloak/services/resources/admin/ComponentResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/ComponentResource.java
@@ -100,7 +100,9 @@ public class ComponentResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
@NoCache
- public List<ComponentRepresentation> getComponents(@QueryParam("parent") String parent, @QueryParam("type") String type) {
+ public List<ComponentRepresentation> getComponents(@QueryParam("parent") String parent,
+ @QueryParam("type") String type,
+ @QueryParam("name") String name) {
auth.requireView();
List<ComponentModel> components = Collections.EMPTY_LIST;
if (parent == null && type == null) {
@@ -115,6 +117,7 @@ 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);
reps.add(rep);
}