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 2015/05/14 14:28:36 UTC
syncope git commit: [SYNCOPE-119][SYNCOPE-667] Adjusting master test
case to match 1_2_X - and fixing something in the meanwhile
Repository: syncope
Updated Branches:
refs/heads/master 5495e809d -> 52dfedcdc
[SYNCOPE-119][SYNCOPE-667] Adjusting master test case to match 1_2_X - and fixing something in the meanwhile
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/52dfedcd
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/52dfedcd
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/52dfedcd
Branch: refs/heads/master
Commit: 52dfedcdccdf1dee848bb906fa32e2bac47e07df
Parents: 5495e80
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu May 14 14:28:29 2015 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu May 14 14:28:29 2015 +0200
----------------------------------------------------------------------
.../core/logic/AbstractSubjectLogic.java | 40 +++++++++++++-------
.../apache/syncope/core/logic/UserLogic.java | 2 +-
.../src/test/resources/content.xml | 10 ++++-
.../core/reference/AuthenticationITCase.java | 22 +++++------
.../fit/core/reference/UserWorkflowITCase.java | 2 +-
5 files changed, 47 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/52dfedcd/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractSubjectLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractSubjectLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractSubjectLogic.java
index 7bd099b..4dcb324 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractSubjectLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AbstractSubjectLogic.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.logic;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.collections4.CollectionUtils;
@@ -32,23 +33,36 @@ import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
public abstract class AbstractSubjectLogic<T extends AbstractSubjectTO, V extends AbstractSubjectMod>
extends AbstractResourceAssociator<T> {
+ private static class StartsWithPredicate implements Predicate<String> {
+
+ private final Collection<String> targets;
+
+ public StartsWithPredicate(final Collection<String> targets) {
+ this.targets = targets;
+ }
+
+ @Override
+ public boolean evaluate(final String realm) {
+ return CollectionUtils.exists(targets, new Predicate<String>() {
+
+ @Override
+ public boolean evaluate(final String target) {
+ return realm.startsWith(target);
+ }
+ });
+ }
+
+ }
+
protected Set<String> getEffectiveRealms(
final Set<String> allowedRealms, final Collection<String> requestedRealms) {
- Set<String> effective = RealmUtils.normalize(requestedRealms);
- CollectionUtils.filter(effective, new Predicate<String>() {
-
- @Override
- public boolean evaluate(final String requestedRealm) {
- return CollectionUtils.exists(allowedRealms, new Predicate<String>() {
+ final Set<String> allowed = RealmUtils.normalize(allowedRealms);
+ final Set<String> requested = RealmUtils.normalize(requestedRealms);
- @Override
- public boolean evaluate(final String allowedRealm) {
- return requestedRealm.startsWith(allowedRealm);
- }
- });
- }
- });
+ Set<String> effective = new HashSet<>();
+ CollectionUtils.select(requested, new StartsWithPredicate(allowed), effective);
+ CollectionUtils.select(allowed, new StartsWithPredicate(requested), effective);
return effective;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/52dfedcd/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
index fc81696..abad867 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/UserLogic.java
@@ -166,7 +166,7 @@ public class UserLogic extends AbstractSubjectLogic<UserTO, UserMod> {
public List<UserTO> search(final SearchCond searchCondition, final int page, final int size,
final List<OrderByClause> orderBy, final List<String> realms) {
- final List<User> matchingUsers = searchDAO.search(
+ List<User> matchingUsers = searchDAO.search(
getEffectiveRealms(AuthContextUtils.getAuthorizations().get(Entitlement.USER_SEARCH), realms),
searchCondition, page, size, orderBy, SubjectType.USER);
return CollectionUtils.collect(matchingUsers, new Transformer<User, UserTO>() {
http://git-wip-us.apache.org/repos/asf/syncope/blob/52dfedcd/core/persistence-jpa/src/test/resources/content.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/content.xml b/core/persistence-jpa/src/test/resources/content.xml
index 7436f45..df76835 100644
--- a/core/persistence-jpa/src/test/resources/content.xml
+++ b/core/persistence-jpa/src/test/resources/content.xml
@@ -138,8 +138,13 @@ under the License.
<SyncopeRole_entitlements entitlement="WORKFLOW_FORM_CLAIM" role_id="3"/>
<SyncopeRole_Realm role_id="3" realm_id="2"/>
+ <SyncopeRole id="4" name="Search for /even/two"/>
+ <SyncopeRole_entitlements entitlement="USER_READ" role_id="4"/>
+ <SyncopeRole_entitlements entitlement="USER_SEARCH" role_id="4"/>
+ <SyncopeRole_Realm role_id="4" realm_id="4"/>
+
<SyncopeUser id="1" workflowId="4" status="active" password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
- realm_id="1"
+ realm_id="3"
username="rossini" creator="admin" lastModifier="admin"
creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
<SyncopeUser_SyncopeRole user_id="1" role_id="3"/>
@@ -147,7 +152,6 @@ under the License.
realm_id="1"
username="verdi" creator="admin" lastModifier="admin"
creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
- <SyncopeUser_SyncopeRole user_id="2" role_id="1"/>
<SyncopeUser id="3" workflowId="8" status="active" password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
realm_id="1"
username="vivaldi" creator="admin" lastModifier="admin"
@@ -156,11 +160,13 @@ under the License.
realm_id="1"
username="bellini" creator="admin" lastModifier="admin"
creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
+ <SyncopeUser_SyncopeRole user_id="4" role_id="1"/>
<SyncopeUser_SyncopeRole user_id="4" role_id="2"/>
<SyncopeUser id="5" workflowId="12" status="active" password="5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8" cipherAlgorithm="SHA1"
realm_id="1"
username="puccini" creator="admin" lastModifier="admin"
creationDate="2010-10-20 11:00:00" lastChangeDate="2010-10-20 11:00:00" suspended="0"/>
+ <SyncopeUser_SyncopeRole user_id="5" role_id="4"/>
<SyncopeGroup id="1" name="root"
realm_id="1"
http://git-wip-us.apache.org/repos/asf/syncope/blob/52dfedcd/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
index 6306850..953d437 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/AuthenticationITCase.java
@@ -105,10 +105,10 @@ public class AuthenticationITCase extends AbstractITCase {
assertEquals(ADMIN_UNAME, self.getValue().getUsername());
// 4. as user
- self = clientFactory.create("verdi", ADMIN_PWD).self();
+ self = clientFactory.create("bellini", ADMIN_PWD).self();
assertFalse(self.getKey().isEmpty());
assertFalse(self.getKey().keySet().contains(Entitlement.ANONYMOUS));
- assertEquals("verdi", self.getValue().getUsername());
+ assertEquals("bellini", self.getValue().getUsername());
}
@Test
@@ -176,23 +176,21 @@ public class AuthenticationITCase extends AbstractITCase {
UserTO readUserTO = userService2.read(1L);
assertNotNull(readUserTO);
- UserService userService3 = clientFactory.create("verdi", ADMIN_PWD).getService(UserService.class);
+ UserService userService3 = clientFactory.create("puccini", ADMIN_PWD).getService(UserService.class);
- SyncopeClientException exception = null;
try {
- userService3.read(1L);
+ userService3.read(3L);
fail();
} catch (SyncopeClientException e) {
- exception = e;
+ assertNotNull(e);
+ assertEquals(ClientExceptionType.Unauthorized, e.getType());
}
- assertNotNull(exception);
- assertEquals(ClientExceptionType.Unauthorized, exception.getType());
}
@Test
public void testUserSearch() {
UserTO userTO = UserITCase.getUniqueSampleTO("testusersearch@test.org");
- userTO.getRoles().add(2L);
+ userTO.getRoles().add(1L);
userTO = createUser(userTO);
assertNotNull(userTO);
@@ -214,10 +212,10 @@ public class AuthenticationITCase extends AbstractITCase {
}
}, new HashSet<Long>());
assertTrue(matchedUserKeys.contains(1L));
- assertTrue(matchedUserKeys.contains(2L));
- assertTrue(matchedUserKeys.contains(5L));
+ assertFalse(matchedUserKeys.contains(2L));
+ assertFalse(matchedUserKeys.contains(5L));
- UserService userService3 = clientFactory.create("verdi", "password").getService(UserService.class);
+ UserService userService3 = clientFactory.create("puccini", ADMIN_PWD).getService(UserService.class);
matchedUsers = userService3.search(
SyncopeClient.getSubjectSearchQueryBuilder().realm("/even/two").
http://git-wip-us.apache.org/repos/asf/syncope/blob/52dfedcd/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserWorkflowITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserWorkflowITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserWorkflowITCase.java
index a99c40c..2432917 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserWorkflowITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/reference/UserWorkflowITCase.java
@@ -85,7 +85,7 @@ public class UserWorkflowITCase extends AbstractITCase {
assertEquals(ClientExceptionType.Workflow, e.getType());
}
- // 4. claim task from bellini, in group 7
+ // 4. claim task from bellini, in role 2
UserWorkflowService userService3 = clientFactory.create(
"bellini", ADMIN_PWD).getService(UserWorkflowService.class);