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 2017/08/07 13:50:12 UTC
[4/4] syncope git commit: Cleaning up utility methods to find
resource keys
Cleaning up utility methods to find resource keys
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b27bed98
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b27bed98
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b27bed98
Branch: refs/heads/master
Commit: b27bed98c83683b01cae2c94c940cd87ab4f583e
Parents: e1084a3
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Mon Aug 7 15:49:31 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Mon Aug 7 15:49:58 2017 +0200
----------------------------------------------------------------------
.../core/persistence/api/dao/AnyDAO.java | 3 +++
.../core/persistence/api/dao/AnyObjectDAO.java | 1 -
.../core/persistence/api/dao/UserDAO.java | 2 --
.../core/persistence/api/entity/Any.java | 2 --
.../core/persistence/jpa/dao/JPAGroupDAO.java | 7 ++++++
.../persistence/jpa/entity/AbstractAny.java | 11 ---------
.../persistence/jpa/entity/conf/JPAConf.java | 5 ----
.../java/DefaultGroupProvisioningManager.java | 2 +-
.../java/data/AnyObjectDataBinderImpl.java | 14 +++++------
.../java/data/GroupDataBinderImpl.java | 2 +-
.../java/data/UserDataBinderImpl.java | 12 ++++-----
.../GroupMemberProvisionTaskJobDelegate.java | 10 +++++---
.../AbstractPropagationTaskExecutor.java | 2 +-
.../LDAPMembershipPropagationActions.java | 2 +-
.../propagation/PropagationManagerImpl.java | 26 ++++++--------------
.../pushpull/AbstractPushResultHandler.java | 11 +++------
.../activiti/ActivitiUserWorkflowAdapter.java | 5 +---
.../workflow/activiti/task/PasswordReset.java | 4 +--
.../java/DefaultGroupWorkflowAdapter.java | 2 +-
.../java/DefaultUserWorkflowAdapter.java | 4 +--
.../camel/producer/DeprovisionProducer.java | 2 +-
.../client/ElasticsearchUtils.java | 2 +-
22 files changed, 49 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
index c161ee7..60f865f 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyDAO.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.persistence.api.dao;
+import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
@@ -84,4 +85,6 @@ public interface AnyDAO<A extends Any<?>> extends DAO<A> {
void delete(A any);
List<String> findDynRealms(String key);
+
+ Collection<String> findAllResourceKeys(String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
index 8a10f0b..6368da5 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/AnyObjectDAO.java
@@ -53,5 +53,4 @@ public interface AnyObjectDAO extends AnyDAO<AnyObject> {
Collection<ExternalResource> findAllResources(AnyObject anyObject);
- Collection<String> findAllResourceKeys(String key);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/UserDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/UserDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/UserDAO.java
index 2a5d76d..92ba692 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/UserDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/UserDAO.java
@@ -56,7 +56,5 @@ public interface UserDAO extends AnyDAO<User> {
Collection<ExternalResource> findAllResources(User user);
- Collection<String> findAllResourceKeys(String key);
-
Pair<Boolean, Boolean> enforcePolicies(User user);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
index e041a6d..9896e73 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
@@ -49,8 +49,6 @@ public interface Any<P extends PlainAttr<?>> extends AnnotatedEntity {
boolean add(ExternalResource resource);
- List<String> getResourceKeys();
-
List<? extends ExternalResource> getResources();
boolean add(AnyTypeClass auxClass);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
index 9d833ea..0bc491a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java
@@ -19,6 +19,7 @@
package org.apache.syncope.core.persistence.jpa.dao;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
@@ -68,6 +69,7 @@ import org.apache.syncope.core.persistence.jpa.entity.user.JPAUDynGroupMembershi
import org.apache.syncope.core.persistence.jpa.entity.user.JPAUMembership;
import org.apache.syncope.core.provisioning.api.event.AnyCreatedUpdatedEvent;
import org.apache.syncope.core.provisioning.api.event.AnyDeletedEvent;
+import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -536,4 +538,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO {
}
}
+ @Transactional(readOnly = true)
+ @Override
+ public Collection<String> findAllResourceKeys(final String key) {
+ return CollectionUtils.collect(authFind(key).getResources(), EntityUtils.keyTransformer());
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
index bd5a108..e77fb7d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractAny.java
@@ -18,18 +18,13 @@
*/
package org.apache.syncope.core.persistence.jpa.entity;
-import java.util.ArrayList;
-import java.util.List;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.PlainAttr;
import org.apache.syncope.core.persistence.api.entity.Realm;
-import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.jpa.validation.entity.AnyCheck;
@AnyCheck
@@ -76,10 +71,4 @@ public abstract class AbstractAny<P extends PlainAttr<?>> extends AbstractAnnota
public void setStatus(final String status) {
this.status = status;
}
-
- @Override
- public List<String> getResourceKeys() {
- return CollectionUtils.collect(
- getResources(), EntityUtils.<ExternalResource>keyTransformer(), new ArrayList<String>());
- }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
index a2ca038..d592394 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/conf/JPAConf.java
@@ -86,11 +86,6 @@ public class JPAConf extends AbstractProvidedKeyEntity implements Conf {
}
@Override
- public List<String> getResourceKeys() {
- return Collections.emptyList();
- }
-
- @Override
public List<? extends ExternalResource> getResources() {
return Collections.emptyList();
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
index d794e61..31a2833 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultGroupProvisioningManager.java
@@ -220,7 +220,7 @@ public class DefaultGroupProvisioningManager implements GroupProvisioningManager
AnyTypeKind.GROUP,
key,
propByRes,
- CollectionUtils.removeAll(groupDAO.authFind(key).getResourceKeys(), resources));
+ CollectionUtils.removeAll(groupDAO.findAllResourceKeys(key), resources));
PropagationReporter propagationReporter = taskExecutor.execute(tasks, nullPriorityAsync);
return propagationReporter.getStatuses();
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
index 523d165..501ebf4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyObjectDataBinderImpl.java
@@ -271,8 +271,7 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
SyncopeClientCompositeException scce = SyncopeClientException.buildComposite();
- Collection<String> currentResources = CollectionUtils.collect(
- anyObjectDAO.findAllResources(anyObject), EntityUtils.keyTransformer());
+ Collection<String> currentResources = anyObjectDAO.findAllResourceKeys(anyObject.getKey());
// fetch connObjectKeys before update
Map<String, String> oldConnObjectKeys = getConnObjectKeys(anyObject);
@@ -282,7 +281,7 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
// name
if (anyObjectPatch.getName() != null && StringUtils.isNotBlank(anyObjectPatch.getName().getValue())) {
- propByRes.addAll(ResourceOperation.UPDATE, anyObject.getResourceKeys());
+ propByRes.addAll(ResourceOperation.UPDATE, anyObjectDAO.findAllResourceKeys(anyObject.getKey()));
anyObject.setName(anyObjectPatch.getName().getValue());
}
@@ -311,7 +310,8 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
anyObject.getRelationships().remove(relationship);
relationship.setLeftEnd(null);
- toBeDeprovisioned.addAll(relationship.getRightEnd().getResourceKeys());
+ toBeDeprovisioned.addAll(
+ anyObjectDAO.findAllResourceKeys(relationship.getRightEnd().getKey()));
}
if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
@@ -336,7 +336,7 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
anyObject.add(relationship);
- toBeProvisioned.addAll(otherEnd.getResourceKeys());
+ toBeProvisioned.addAll(anyObjectDAO.findAllResourceKeys(otherEnd.getKey()));
} else {
LOG.error("{} cannot be assigned to {}", otherEnd, anyObject);
@@ -370,7 +370,7 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
attr.setOwner(null);
}
- toBeDeprovisioned.addAll(membership.getRightEnd().getResourceKeys());
+ toBeDeprovisioned.addAll(groupDAO.findAllResourceKeys(membership.getRightEnd().getKey()));
}
if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
@@ -412,7 +412,7 @@ public class AnyObjectDataBinderImpl extends AbstractAnyDataBinder implements An
scce.addException(invalidValues);
}
- toBeProvisioned.addAll(group.getResourceKeys());
+ toBeProvisioned.addAll(groupDAO.findAllResourceKeys(group.getKey()));
} else {
LOG.error("{} cannot be assigned to {}", group, anyObject);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
index 1d25c08..467874d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/GroupDataBinderImpl.java
@@ -199,7 +199,7 @@ public class GroupDataBinderImpl extends AbstractAnyDataBinder implements GroupD
// name
if (groupPatch.getName() != null && StringUtils.isNotBlank(groupPatch.getName().getValue())) {
- propByRes.addAll(ResourceOperation.UPDATE, group.getResourceKeys());
+ propByRes.addAll(ResourceOperation.UPDATE, groupDAO.findAllResourceKeys(group.getKey()));
group.setName(groupPatch.getName().getValue());
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index e9369c7..3721371 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -315,8 +315,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
SyncopeClientCompositeException scce = SyncopeClientException.buildComposite();
- Collection<String> currentResources = CollectionUtils.collect(
- userDAO.findAllResources(user), EntityUtils.keyTransformer());
+ Collection<String> currentResources = userDAO.findAllResourceKeys(user.getKey());
// fetch connObjectKeys before update
Map<String, String> oldConnObjectKeys = getConnObjectKeys(user);
@@ -413,7 +412,8 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
user.getRelationships().remove(relationship);
relationship.setLeftEnd(null);
- toBeDeprovisioned.addAll(relationship.getRightEnd().getResourceKeys());
+ toBeDeprovisioned.addAll(
+ anyObjectDAO.findAllResourceKeys(relationship.getRightEnd().getKey()));
}
if (patch.getOperation() == PatchOperation.ADD_REPLACE) {
@@ -428,7 +428,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
user.add(relationship);
- toBeProvisioned.addAll(otherEnd.getResourceKeys());
+ toBeProvisioned.addAll(anyObjectDAO.findAllResourceKeys(otherEnd.getKey()));
} else {
LOG.error("{} cannot be assigned to {}", otherEnd, user);
@@ -462,7 +462,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
attr.setMembership(null);
}
- toBeDeprovisioned.addAll(membership.getRightEnd().getResourceKeys());
+ toBeDeprovisioned.addAll(groupDAO.findAllResourceKeys(membership.getRightEnd().getKey()));
}
if (membPatch.getOperation() == PatchOperation.ADD_REPLACE) {
@@ -504,7 +504,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
scce.addException(invalidValues);
}
- toBeProvisioned.addAll(group.getResourceKeys());
+ toBeProvisioned.addAll(groupDAO.findAllResourceKeys(group.getKey()));
// SYNCOPE-686: if password is invertible and we are adding resources with password mapping,
// ensure that they are counted for password propagation
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/GroupMemberProvisionTaskJobDelegate.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/GroupMemberProvisionTaskJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/GroupMemberProvisionTaskJobDelegate.java
index f324359..4868bbc 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/GroupMemberProvisionTaskJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/GroupMemberProvisionTaskJobDelegate.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.core.provisioning.java.job;
+import java.util.Collection;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.apache.syncope.common.lib.to.PropagationStatus;
@@ -84,10 +85,11 @@ public class GroupMemberProvisionTaskJobDelegate extends AbstractSchedTaskJobDel
MembershipCond membershipCond = new MembershipCond();
membershipCond.setGroup(groupKey);
List<User> users = searchDAO.search(SearchCond.getLeafCond(membershipCond), AnyTypeKind.USER);
+ Collection<String> groupResourceKeys = groupDAO.findAllResourceKeys(groupKey);
for (User user : users) {
List<PropagationStatus> statuses = actionType == BulkMembersActionType.DEPROVISION
- ? userProvisioningManager.deprovision(user.getKey(), group.getResourceKeys(), false)
- : userProvisioningManager.provision(user.getKey(), true, null, group.getResourceKeys(), false);
+ ? userProvisioningManager.deprovision(user.getKey(), groupResourceKeys, false)
+ : userProvisioningManager.provision(user.getKey(), true, null, groupResourceKeys, false);
for (PropagationStatus status : statuses) {
result.append("User ").append(user.getKey()).append('\t').
append("Resource ").append(status.getResource()).append('\t').
@@ -105,8 +107,8 @@ public class GroupMemberProvisionTaskJobDelegate extends AbstractSchedTaskJobDel
List<AnyObject> anyObjects = searchDAO.search(SearchCond.getLeafCond(membershipCond), AnyTypeKind.ANY_OBJECT);
for (AnyObject anyObject : anyObjects) {
List<PropagationStatus> statuses = actionType == BulkMembersActionType.DEPROVISION
- ? anyObjectProvisioningManager.deprovision(anyObject.getKey(), group.getResourceKeys(), false)
- : anyObjectProvisioningManager.provision(anyObject.getKey(), group.getResourceKeys(), false);
+ ? anyObjectProvisioningManager.deprovision(anyObject.getKey(), groupResourceKeys, false)
+ : anyObjectProvisioningManager.provision(anyObject.getKey(), groupResourceKeys, false);
for (PropagationStatus status : statuses) {
result.append(anyObject.getType().getKey()).append(' ').append(anyObject.getKey()).append('\t').
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
index 762c78b..395a5a8 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
@@ -323,7 +323,7 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
case GROUP:
try {
- resources = groupDAO.authFind(task.getEntityKey()).getResourceKeys();
+ resources = groupDAO.findAllResourceKeys(task.getEntityKey());
} catch (Exception e) {
LOG.error("Could not read group {}", task.getEntityKey(), e);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
index d5f8d3d..c392db2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
@@ -86,7 +86,7 @@ public class LDAPMembershipPropagationActions extends DefaultPropagationActions
List<String> groupConnObjectLinks = new ArrayList<>();
for (String groupKey : userDAO.findAllGroupKeys(user)) {
Group group = groupDAO.find(groupKey);
- if (group != null && group.getResourceKeys().contains(task.getResource().getKey())) {
+ if (group != null && groupDAO.findAllResourceKeys(groupKey).contains(task.getResource().getKey())) {
LOG.debug("Evaluating connObjectLink for {}", group);
JexlContext jexlContext = new MapContext();
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
index 6b459d5..fdeb848 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
@@ -53,15 +53,11 @@ import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyUtilsFactory;
import org.apache.syncope.core.persistence.api.entity.Realm;
import org.apache.syncope.core.persistence.api.entity.VirSchema;
-import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
-import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.OrgUnit;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
-import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.api.MappingManager;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.AttributeBuilder;
@@ -118,7 +114,7 @@ public class PropagationManagerImpl implements PropagationManager {
@Autowired
protected AnyUtilsFactory anyUtilsFactory;
- protected Any<?> find(final AnyTypeKind kind, final String key) {
+ protected AnyDAO<? extends Any<?>> dao(final AnyTypeKind kind) {
AnyDAO<? extends Any<?>> dao;
switch (kind) {
case ANY_OBJECT:
@@ -134,7 +130,7 @@ public class PropagationManagerImpl implements PropagationManager {
dao = userDAO;
}
- return dao.authFind(key);
+ return dao;
}
@Override
@@ -145,7 +141,7 @@ public class PropagationManagerImpl implements PropagationManager {
final Collection<AttrTO> vAttrs,
final Collection<String> noPropResourceKeys) {
- return getCreateTasks(find(kind, key), null, null, propByRes, vAttrs, noPropResourceKeys);
+ return getCreateTasks(dao(kind).authFind(key), null, null, propByRes, vAttrs, noPropResourceKeys);
}
@Override
@@ -189,7 +185,7 @@ public class PropagationManagerImpl implements PropagationManager {
final Collection<AttrTO> vAttrs,
final Collection<String> noPropResourceKeys) {
- return getUpdateTasks(find(kind, key), null, changePwd, enable, propByRes, vAttrs, noPropResourceKeys);
+ return getUpdateTasks(dao(kind).authFind(key), null, changePwd, enable, propByRes, vAttrs, noPropResourceKeys);
}
@Override
@@ -288,12 +284,12 @@ public class PropagationManagerImpl implements PropagationManager {
final PropagationByResource propByRes,
final Collection<String> noPropResourceKeys) {
- Any<?> any = find(kind, key);
+ Any<?> any = dao(kind).authFind(key);
PropagationByResource localPropByRes = new PropagationByResource();
if (propByRes == null || propByRes.isEmpty()) {
- localPropByRes.addAll(ResourceOperation.DELETE, any.getResourceKeys());
+ localPropByRes.addAll(ResourceOperation.DELETE, dao(kind).findAllResourceKeys(key));
} else {
localPropByRes.merge(propByRes);
}
@@ -340,15 +336,7 @@ public class PropagationManagerImpl implements PropagationManager {
Set<String> virtualResources = new HashSet<>();
virtualResources.addAll(propByRes.get(ResourceOperation.CREATE));
virtualResources.addAll(propByRes.get(ResourceOperation.UPDATE));
- if (any instanceof User) {
- virtualResources.addAll(CollectionUtils.collect(
- userDAO.findAllResources((User) any), EntityUtils.keyTransformer()));
- } else if (any instanceof AnyObject) {
- virtualResources.addAll(CollectionUtils.collect(
- anyObjectDAO.findAllResources((AnyObject) any), EntityUtils.keyTransformer()));
- } else {
- virtualResources.addAll(((Group) any).getResourceKeys());
- }
+ virtualResources.addAll(dao(any.getType().getKind()).findAllResourceKeys(any.getKey()));
Map<String, Set<Attribute>> vAttrMap = new HashMap<>();
for (AttrTO vAttr : CollectionUtils.emptyIfNull(vAttrs)) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
index 7fbfe4e..7095739 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
@@ -24,7 +24,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.syncope.common.lib.patch.AnyPatch;
import org.apache.syncope.common.lib.patch.StringPatchItem;
@@ -44,7 +43,6 @@ import org.apache.syncope.core.provisioning.api.pushpull.PushActions;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.AnyUtils;
import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
-import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.resource.Item;
import org.apache.syncope.core.persistence.api.entity.resource.MappingItem;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
@@ -56,7 +54,6 @@ import org.apache.syncope.core.provisioning.api.notification.NotificationManager
import org.apache.syncope.core.provisioning.api.propagation.PropagationReporter;
import org.apache.syncope.core.provisioning.api.pushpull.IgnoreProvisionException;
import org.apache.syncope.core.provisioning.api.pushpull.SyncopePushResultHandler;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.provisioning.java.job.AfterHandlingJob;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
import org.identityconnectors.framework.common.objects.AttributeBuilder;
@@ -103,15 +100,13 @@ public abstract class AbstractPushResultHandler extends AbstractSyncopeResultHan
Collection<String> resourceKeys;
if (any instanceof User) {
changepwd = true;
- resourceKeys = CollectionUtils.collect(
- userDAO.findAllResources((User) any), EntityUtils.keyTransformer());
+ resourceKeys = userDAO.findAllResourceKeys(any.getKey());
} else if (any instanceof AnyObject) {
changepwd = false;
- resourceKeys = CollectionUtils.collect(
- anyObjectDAO.findAllResources((AnyObject) any), EntityUtils.keyTransformer());
+ resourceKeys = anyObjectDAO.findAllResourceKeys(any.getKey());
} else {
changepwd = false;
- resourceKeys = ((Group) any).getResourceKeys();
+ resourceKeys = groupDAO.findAllResourceKeys(any.getKey());
}
List<String> noPropResources = new ArrayList<>(resourceKeys);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
index 8ce6d1b..ad8229e 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/ActivitiUserWorkflowAdapter.java
@@ -73,7 +73,6 @@ import org.apache.syncope.core.persistence.api.attrvalue.validation.ParsingValid
import org.apache.syncope.core.persistence.api.dao.NotFoundException;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.workflow.activiti.spring.DomainProcessEngine;
import org.apache.syncope.core.workflow.api.WorkflowDefinitionFormat;
import org.apache.syncope.core.workflow.api.WorkflowException;
@@ -413,9 +412,7 @@ public class ActivitiUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
doExecuteTask(user, "delete", null);
PropagationByResource propByRes = new PropagationByResource();
- propByRes.set(
- ResourceOperation.DELETE,
- CollectionUtils.collect(userDAO.findAllResources(user), EntityUtils.keyTransformer()));
+ propByRes.set(ResourceOperation.DELETE, userDAO.findAllResourceKeys(user.getKey()));
saveForFormSubmit(user, null, propByRes);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/PasswordReset.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/PasswordReset.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/PasswordReset.java
index d3caac6..8a33bfb 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/PasswordReset.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/PasswordReset.java
@@ -18,14 +18,12 @@
*/
package org.apache.syncope.core.workflow.activiti.task;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.syncope.common.lib.patch.PasswordPatch;
import org.apache.syncope.common.lib.patch.UserPatch;
import org.apache.syncope.core.provisioning.api.PropagationByResource;
import org.apache.syncope.core.persistence.api.dao.UserDAO;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.api.data.UserDataBinder;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.workflow.api.WorkflowException;
import org.apache.syncope.core.workflow.activiti.ActivitiUserWorkflowAdapter;
import org.springframework.beans.factory.annotation.Autowired;
@@ -59,7 +57,7 @@ public class PasswordReset extends AbstractActivitiServiceTask {
userPatch.setKey(user.getKey());
userPatch.setPassword(new PasswordPatch.Builder().
onSyncope(true).
- resources(CollectionUtils.collect(userDAO.findAllResources(user), EntityUtils.keyTransformer())).
+ resources(userDAO.findAllResourceKeys(user.getKey())).
value(password).build());
PropagationByResource propByRes = dataBinder.update(user, userPatch);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultGroupWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultGroupWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultGroupWorkflowAdapter.java
index f5c9837..7ebbf3d 100644
--- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultGroupWorkflowAdapter.java
+++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultGroupWorkflowAdapter.java
@@ -44,7 +44,7 @@ public class DefaultGroupWorkflowAdapter extends AbstractGroupWorkflowAdapter {
group = groupDAO.save(group);
PropagationByResource propByRes = new PropagationByResource();
- propByRes.set(ResourceOperation.CREATE, group.getResourceKeys());
+ propByRes.set(ResourceOperation.CREATE, groupDAO.findAllResourceKeys(group.getKey()));
return new WorkflowResult<>(group.getKey(), propByRes, "create");
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
index 429a2ce..f4d8a81 100644
--- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
+++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.workflow.java;
import java.io.OutputStream;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.patch.PasswordPatch;
@@ -34,7 +33,6 @@ import org.apache.syncope.common.lib.types.ResourceOperation;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
import org.apache.syncope.core.workflow.api.WorkflowDefinitionFormat;
import org.apache.syncope.core.workflow.api.WorkflowException;
import org.springframework.beans.factory.annotation.Autowired;
@@ -146,7 +144,7 @@ public class DefaultUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
userPatch.setKey(user.getKey());
userPatch.setPassword(new PasswordPatch.Builder().
onSyncope(true).
- resources(CollectionUtils.collect(userDAO.findAllResources(user), EntityUtils.keyTransformer())).
+ resources(userDAO.findAllResourceKeys(user.getKey())).
value(password).build());
return doUpdate(user, userPatch);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
----------------------------------------------------------------------
diff --git a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
index 5b20d11..8d99fdb 100644
--- a/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
+++ b/ext/camel/provisioning-camel/src/main/java/org/apache/syncope/core/provisioning/camel/producer/DeprovisionProducer.java
@@ -82,7 +82,7 @@ public class DeprovisionProducer extends AbstractProducer {
AnyTypeKind.GROUP,
key,
propByRes,
- CollectionUtils.removeAll(groupDAO.authFind(key).getResourceKeys(), resources));
+ CollectionUtils.removeAll(groupDAO.findAllResourceKeys(key), resources));
propagationReporter = getPropagationTaskExecutor().execute(tasks, nullPriorityAsync);
exchange.getOut().setBody(propagationReporter.getStatuses());
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/b27bed98/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
----------------------------------------------------------------------
diff --git a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
index d9ce84f..9bcea18 100644
--- a/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
+++ b/ext/elasticsearch/client-elasticsearch/src/main/java/org/apache/syncope/ext/elasticsearch/client/ElasticsearchUtils.java
@@ -103,7 +103,7 @@ public class ElasticsearchUtils {
? userDAO.findAllResourceKeys(any.getKey())
: any instanceof AnyObject
? anyObjectDAO.findAllResourceKeys(any.getKey())
- : any.getResourceKeys()).
+ : groupDAO.findAllResourceKeys(any.getKey())).
field("dynRealms",
any instanceof User
? userDAO.findDynRealms(any.getKey())