You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2020/01/31 16:44:48 UTC
[syncope] 02/02: [SYNCOPE-1538] Introducing realm search
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
commit a4d851e7a84b3d02a3aa5f5b48b138650c7c7086
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Fri Jan 31 16:58:29 2020 +0100
[SYNCOPE-1538] Introducing realm search
---
.../cli/commands/realm/RealmSyncopeOperations.java | 3 +-
.../syncope/client/console/pages/Realms.java | 3 +-
.../client/console/rest/RealmRestClient.java | 3 +-
.../client/enduser/resources/RealmResource.java | 5 +-
.../syncope/common/rest/api/beans/RealmQuery.java | 80 ++++++++++++++++++++++
.../common/rest/api/service/RealmService.java | 10 ++-
.../org/apache/syncope/core/logic/RealmLogic.java | 18 ++++-
.../syncope/core/persistence/api/dao/RealmDAO.java | 2 +
.../core/persistence/jpa/dao/JPARealmDAO.java | 28 +++++---
.../java/data/RealmDataBinderImpl.java | 14 ++--
.../core/rest/cxf/service/RealmServiceImpl.java | 6 +-
.../syncope/fit/core/MultitenancyITCase.java | 7 +-
.../org/apache/syncope/fit/core/RealmITCase.java | 16 +++--
.../org/apache/syncope/fit/core/UserITCase.java | 3 +-
.../apache/syncope/fit/core/UserIssuesITCase.java | 7 +-
15 files changed, 162 insertions(+), 43 deletions(-)
diff --git a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmSyncopeOperations.java b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmSyncopeOperations.java
index 19af12f..75c07fe 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmSyncopeOperations.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/realm/RealmSyncopeOperations.java
@@ -20,6 +20,7 @@ package org.apache.syncope.client.cli.commands.realm;
import java.util.List;
import org.apache.syncope.client.cli.SyncopeServices;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.rest.api.service.RealmService;
@@ -28,7 +29,7 @@ public class RealmSyncopeOperations {
private final RealmService realmService = SyncopeServices.get(RealmService.class);
public List<RealmTO> list() {
- return realmService.list();
+ return realmService.list(SyncopeConstants.ROOT_REALM);
}
public boolean exists(final String realm) {
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
index 2fcc2cf..c9a255e 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/pages/Realms.java
@@ -73,8 +73,9 @@ public class Realms extends BasePage {
@Override
protected Serializable onApplyInternal(
final TemplatableTO targetObject, final String type, final AnyTO anyTO) {
+
targetObject.getTemplates().put(type, anyTO);
- new RealmRestClient().update(RealmTO.class.cast(targetObject));
+ realmRestClient.update(RealmTO.class.cast(targetObject));
return targetObject;
}
};
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java
index 2d23df6..6a96b20 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/RealmRestClient.java
@@ -21,6 +21,7 @@ package org.apache.syncope.client.console.rest;
import java.util.List;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.DynRealmTO;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.to.RealmTO;
@@ -35,7 +36,7 @@ public class RealmRestClient extends BaseRestClient {
private static final long serialVersionUID = -8549081557283519638L;
public List<RealmTO> list() {
- return getService(RealmService.class).list();
+ return getService(RealmService.class).list(SyncopeConstants.ROOT_REALM);
}
public List<DynRealmTO> listDynReams() {
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/RealmResource.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/RealmResource.java
index 8c6d74a..0a5aab3 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/RealmResource.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/RealmResource.java
@@ -26,6 +26,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.syncope.client.enduser.SyncopeEnduserSession;
import org.apache.syncope.client.enduser.annotations.Resource;
+import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.rest.api.service.RealmService;
import org.apache.wicket.request.resource.AbstractResource;
@@ -49,7 +50,8 @@ public class RealmResource extends BaseResource {
return response;
}
- final List<RealmTO> realmTOs = SyncopeEnduserSession.get().getService(RealmService.class).list();
+ List<RealmTO> realmTOs = SyncopeEnduserSession.get().
+ getService(RealmService.class).list(SyncopeConstants.ROOT_REALM);
response.setTextEncoding(StandardCharsets.UTF_8.name());
@@ -72,5 +74,4 @@ public class RealmResource extends BaseResource {
return response;
}
-
}
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/RealmQuery.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/RealmQuery.java
new file mode 100644
index 0000000..f32d6d7
--- /dev/null
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/beans/RealmQuery.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.common.rest.api.beans;
+
+import java.io.Serializable;
+import javax.ws.rs.QueryParam;
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+
+public class RealmQuery implements Serializable {
+
+ private static final long serialVersionUID = -2278419397595186866L;
+
+ public static class Builder {
+
+ private final RealmQuery instance = new RealmQuery();
+
+ public Builder keyword(final String keyword) {
+ instance.setKeyword(keyword);
+ return this;
+ }
+
+ public RealmQuery build() {
+ return instance;
+ }
+ }
+
+ private String keyword;
+
+ public String getKeyword() {
+ return keyword;
+ }
+
+ @QueryParam("keyword")
+ public void setKeyword(final String keyword) {
+ this.keyword = keyword;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ RealmQuery other = (RealmQuery) obj;
+ return new EqualsBuilder().
+ appendSuper(super.equals(obj)).
+ append(keyword, other.keyword).
+ build();
+ }
+
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder().
+ appendSuper(super.hashCode()).
+ append(keyword).
+ build();
+ }
+}
diff --git a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
index c7617a9..0790b7c 100644
--- a/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
+++ b/common/rest-api/src/main/java/org/apache/syncope/common/rest/api/service/RealmService.java
@@ -30,6 +30,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirements;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.List;
import javax.validation.constraints.NotNull;
+import javax.ws.rs.BeanParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
@@ -44,6 +45,7 @@ import javax.ws.rs.core.Response;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.rest.api.RESTHeaders;
+import org.apache.syncope.common.rest.api.beans.RealmQuery;
/**
* REST operations for realms.
@@ -56,13 +58,15 @@ import org.apache.syncope.common.rest.api.RESTHeaders;
public interface RealmService extends JAXRSService {
/**
- * Returns a list of all realms.
+ * Returns a paged list of existing realms matching the given query.
*
- * @return list of all realms.
+ * @param query query conditions
+ * @return paged list of existing realms matching the given query
*/
@GET
+ @Path("search")
@Produces({ MediaType.APPLICATION_JSON, RESTHeaders.APPLICATION_YAML, MediaType.APPLICATION_XML })
- List<RealmTO> list();
+ List<RealmTO> search(@BeanParam RealmQuery query);
/**
* Returns realms rooted at the given path.
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
index bc7a274..c590a0c 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.logic;
import java.lang.reflect.Method;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -70,6 +71,20 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
@Autowired
private PropagationTaskExecutor taskExecutor;
+ @PreAuthorize("hasRole('" + StandardEntitlement.REALM_LIST + "')")
+ @Transactional(readOnly = true)
+ public List<RealmTO> search(final String keyword) {
+ Set<String> bases = AuthContextUtils.getAuthorizations().get(StandardEntitlement.REALM_LIST);
+
+ return realmDAO.findMatching(keyword).stream().
+ filter(realm -> bases.stream().anyMatch(base -> realm.getFullPath().startsWith(base))).
+ flatMap(realm -> realmDAO.findDescendants(realm).stream()).
+ distinct().
+ map(realm -> binder.getRealmTO(realm, true)).
+ sorted(Comparator.comparing(RealmTO::getFullPath)).
+ collect(Collectors.toList());
+ }
+
@PreAuthorize("isAuthenticated()")
@Transactional(readOnly = true)
public List<RealmTO> list(final String fullPath) {
@@ -80,7 +95,7 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
throw new NotFoundException(fullPath);
}
- final boolean admin = AuthContextUtils.getAuthorizations().keySet().contains(StandardEntitlement.REALM_LIST);
+ boolean admin = AuthContextUtils.getAuthorizations().keySet().contains(StandardEntitlement.REALM_LIST);
return realmDAO.findDescendants(realm).stream().
map(descendant -> binder.getRealmTO(descendant, admin)).collect(Collectors.toList());
}
@@ -223,5 +238,4 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
throw new UnresolvedReferenceException();
}
-
}
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/RealmDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/RealmDAO.java
index 800b493..9daabb1 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/RealmDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/RealmDAO.java
@@ -41,6 +41,8 @@ public interface RealmDAO extends DAO<Realm> {
List<Realm> findByResource(ExternalResource resource);
+ List<Realm> findMatching(String keyword);
+
<T extends Policy> List<Realm> findByPolicy(T policy);
List<Realm> findByLogicActions(Implementation logicActions);
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
index 1c4ff91..34e1fe4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java
@@ -102,16 +102,15 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
private <T extends Policy> List<Realm> findSamePolicyChildren(final Realm realm, final T policy) {
List<Realm> result = new ArrayList<>();
- for (Realm child : findChildren(realm)) {
- if ((policy instanceof AccountPolicy
- && child.getAccountPolicy() == null || policy.equals(child.getAccountPolicy()))
- || (policy instanceof PasswordPolicy
- && child.getPasswordPolicy() == null || policy.equals(child.getPasswordPolicy()))) {
-
- result.add(child);
- result.addAll(findSamePolicyChildren(child, policy));
- }
- }
+ findChildren(realm).stream().
+ filter(child -> (policy instanceof AccountPolicy
+ && child.getAccountPolicy() == null || policy.equals(child.getAccountPolicy()))
+ || (policy instanceof PasswordPolicy
+ && child.getPasswordPolicy() == null || policy.equals(child.getPasswordPolicy()))).
+ forEach(child -> {
+ result.add(child);
+ result.addAll(findSamePolicyChildren(child, policy));
+ });
return result;
}
@@ -135,6 +134,15 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO {
}
@Override
+ public List<Realm> findMatching(final String keyword) {
+ TypedQuery<Realm> query = entityManager().createQuery("SELECT e FROM " + JPARealm.class.getSimpleName() + " e "
+ + "WHERE e.name LIKE :keyword", Realm.class);
+ query.setParameter("keyword", keyword);
+
+ return query.getResultList();
+ }
+
+ @Override
public <T extends Policy> List<Realm> findByPolicy(final T policy) {
if (ProvisioningPolicy.class.isAssignableFrom(policy.getClass())) {
return Collections.<Realm>emptyList();
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
index 0202571..adaeeaf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/RealmDataBinderImpl.java
@@ -229,20 +229,14 @@ public class RealmDataBinderImpl implements RealmDataBinder {
realmTO.setAccountPolicy(realm.getAccountPolicy() == null ? null : realm.getAccountPolicy().getKey());
realmTO.setPasswordPolicy(realm.getPasswordPolicy() == null ? null : realm.getPasswordPolicy().getKey());
- realm.getActions().forEach(action -> {
- realmTO.getActions().add(action.getKey());
- });
+ realm.getActions().forEach(action -> realmTO.getActions().add(action.getKey()));
- realm.getTemplates().forEach(template -> {
- realmTO.getTemplates().put(template.getAnyType().getKey(), template.get());
- });
+ realm.getTemplates().forEach(
+ template -> realmTO.getTemplates().put(template.getAnyType().getKey(), template.get()));
- realm.getResources().forEach(resource -> {
- realmTO.getResources().add(resource.getKey());
- });
+ realm.getResources().forEach(resource -> realmTO.getResources().add(resource.getKey()));
}
return realmTO;
}
-
}
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RealmServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RealmServiceImpl.java
index e937278..5767ad2 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RealmServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/RealmServiceImpl.java
@@ -26,6 +26,7 @@ import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.to.ProvisioningResult;
import org.apache.syncope.common.lib.to.RealmTO;
import org.apache.syncope.common.rest.api.RESTHeaders;
+import org.apache.syncope.common.rest.api.beans.RealmQuery;
import org.apache.syncope.common.rest.api.service.RealmService;
import org.apache.syncope.core.logic.RealmLogic;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,8 +39,9 @@ public class RealmServiceImpl extends AbstractServiceImpl implements RealmServic
private RealmLogic logic;
@Override
- public List<RealmTO> list() {
- return list(StringUtils.EMPTY);
+ public List<RealmTO> search(final RealmQuery query) {
+ String keyword = query.getKeyword() == null ? null : query.getKeyword().replace('*', '%');
+ return logic.search(keyword);
}
@Override
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
index 6c74240..f63e3ac 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
@@ -57,6 +57,7 @@ import org.apache.syncope.common.lib.types.PullMode;
import org.apache.syncope.common.lib.types.SchemaType;
import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
+import org.apache.syncope.common.rest.api.beans.RealmQuery;
import org.apache.syncope.common.rest.api.beans.ReconQuery;
import org.apache.syncope.common.rest.api.beans.SchemaQuery;
import org.apache.syncope.common.rest.api.beans.TaskQuery;
@@ -126,14 +127,16 @@ public class MultitenancyITCase extends AbstractITCase {
@Test
public void readRealm() {
- List<RealmTO> realms = adminClient.getService(RealmService.class).list();
+ List<RealmTO> realms = adminClient.getService(RealmService.class).
+ search(new RealmQuery.Builder().keyword("*").build());
assertEquals(1, realms.size());
assertEquals(SyncopeConstants.ROOT_REALM, realms.get(0).getName());
}
@Test
public void createUser() {
- assertNull(adminClient.getService(RealmService.class).list().get(0).getPasswordPolicy());
+ assertNull(adminClient.getService(RealmService.class).
+ search(new RealmQuery.Builder().keyword("*").build()).get(0).getPasswordPolicy());
UserTO user = new UserTO();
user.setRealm(SyncopeConstants.ROOT_REALM);
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
index 320f038..73ec846 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
@@ -43,9 +43,11 @@ import org.apache.syncope.common.lib.types.ImplementationType;
import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.syncope.common.lib.types.ExecStatus;
import org.apache.syncope.common.rest.api.RESTHeaders;
+import org.apache.syncope.common.rest.api.beans.RealmQuery;
import org.apache.syncope.common.rest.api.service.RealmService;
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.fit.AbstractITCase;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class RealmITCase extends AbstractITCase {
@@ -55,13 +57,17 @@ public class RealmITCase extends AbstractITCase {
}
@Test
+ public void search() {
+ List<RealmTO> match = realmService.search(new RealmQuery.Builder().keyword("*o*").build());
+ assertTrue(match.stream().allMatch(realm -> realm.getName().contains("o")));
+ }
+
+ @Test
public void list() {
- List<RealmTO> realms = realmService.list();
+ List<RealmTO> realms = realmService.list(SyncopeConstants.ROOT_REALM);
assertNotNull(realms);
assertFalse(realms.isEmpty());
- realms.forEach(realm -> {
- assertNotNull(realm);
- });
+ realms.forEach(Assertions::assertNotNull);
try {
realmService.list("a name");
@@ -106,7 +112,7 @@ public class RealmITCase extends AbstractITCase {
assertNotNull(actual);
assertEquals("/odd/last", actual.getFullPath());
- assertEquals(1, realmService.list().stream().
+ assertEquals(1, realmService.list(SyncopeConstants.ROOT_REALM).stream().
filter(object -> realm.getName().equals(object.getName())).count());
// 4. create under invalid path
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 2553993..257c5c1 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -85,6 +85,7 @@ import org.apache.syncope.common.lib.types.TaskType;
import org.apache.syncope.common.rest.api.RESTHeaders;
import org.apache.syncope.common.rest.api.batch.BatchResponseItem;
import org.apache.syncope.common.rest.api.beans.AnyQuery;
+import org.apache.syncope.common.rest.api.beans.RealmQuery;
import org.apache.syncope.common.rest.api.beans.TaskQuery;
import org.apache.syncope.common.rest.api.service.ResourceService;
import org.apache.syncope.common.rest.api.service.UserSelfService;
@@ -977,7 +978,7 @@ public class UserITCase extends AbstractITCase {
passwordPolicy = createPolicy(PolicyType.PASSWORD, passwordPolicy);
assertNotNull(passwordPolicy);
- RealmTO realm = realmService.list("/even/two").get(0);
+ RealmTO realm = realmService.search(new RealmQuery.Builder().keyword("two").build()).get(0);
String oldAccountPolicy = realm.getAccountPolicy();
realm.setAccountPolicy(accountPolicy.getKey());
String oldPasswordPolicy = realm.getPasswordPolicy();
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
index e78d26d..7fe994a 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
@@ -75,6 +75,7 @@ import org.apache.syncope.common.lib.types.PatchOperation;
import org.apache.syncope.common.lib.types.PolicyType;
import org.apache.syncope.common.lib.types.ExecStatus;
import org.apache.syncope.common.rest.api.RESTHeaders;
+import org.apache.syncope.common.rest.api.beans.RealmQuery;
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.provisioning.java.propagation.DBPasswordPropagationActions;
import org.apache.syncope.core.provisioning.java.propagation.LDAPPasswordPropagationActions;
@@ -815,7 +816,7 @@ public class UserIssuesITCase extends AbstractITCase {
}
assertNotNull(logicActions);
- RealmTO realm = realmService.list("/even/two").iterator().next();
+ RealmTO realm = realmService.search(new RealmQuery.Builder().keyword("two").build()).get(0);
assertNotNull(realm);
realm.getActions().add(logicActions.getKey());
realmService.update(realm);
@@ -1240,7 +1241,7 @@ public class UserIssuesITCase extends AbstractITCase {
passwordPolicy = createPolicy(PolicyType.PASSWORD, passwordPolicy);
assertNotNull(passwordPolicy);
- RealmTO realm = realmService.list("/even/two").get(0);
+ RealmTO realm = realmService.search(new RealmQuery.Builder().keyword("two").build()).get(0);
String oldPasswordPolicy = realm.getPasswordPolicy();
realm.setPasswordPolicy(passwordPolicy.getKey());
realmService.update(realm);
@@ -1569,6 +1570,6 @@ public class UserIssuesITCase extends AbstractITCase {
UserTO userTO = userService.read("1417acbe-cbf6-4277-9372-e75e04f97000");
assertFalse(userTO.getResources().contains(RESOURCE_NAME_TESTDB), "Should not contain removed resources");
assertFalse(userTO.getAuxClasses().contains("csv"), "Should not contain removed auxiliary classes");
- assertFalse(userTO.getRoles().contains("Other"),"Should not contain removed roles");
+ assertFalse(userTO.getRoles().contains("Other"), "Should not contain removed roles");
}
}