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/892778cf Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/892778cf Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/892778cf Branch: refs/heads/2_0_X Commit: 892778cf85710b0037484bee3b2bb99f5a604c9d Parents: 031ab3c Author: Francesco Chicchiriccò <ilgro...@apache.org> Authored: Mon Aug 7 15:49:31 2017 +0200 Committer: Francesco Chicchiriccò <ilgro...@apache.org> Committed: Mon Aug 7 15:49:31 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 +-- .../flowable/FlowableUserWorkflowAdapter.java | 5 +--- .../workflow/flowable/task/PasswordReset.java | 4 +-- .../java/DefaultGroupWorkflowAdapter.java | 2 +- .../java/DefaultUserWorkflowAdapter.java | 4 +-- .../camel/producer/DeprovisionProducer.java | 2 +- .../client/ElasticsearchUtils.java | 2 +- 24 files changed, 51 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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/892778cf/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 8d8d566..3ad12eb 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; @@ -418,9 +417,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/892778cf/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/892778cf/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/FlowableUserWorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/FlowableUserWorkflowAdapter.java b/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/FlowableUserWorkflowAdapter.java index ab1766d..6552449 100644 --- a/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/FlowableUserWorkflowAdapter.java +++ b/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/FlowableUserWorkflowAdapter.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.flowable.spring.DomainProcessEngine; import org.apache.syncope.core.workflow.api.WorkflowDefinitionFormat; import org.apache.syncope.core.workflow.api.WorkflowException; @@ -418,9 +417,7 @@ public class FlowableUserWorkflowAdapter 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/892778cf/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/PasswordReset.java ---------------------------------------------------------------------- diff --git a/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/PasswordReset.java b/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/PasswordReset.java index 61d9d17..017fcc6 100644 --- a/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/PasswordReset.java +++ b/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/PasswordReset.java @@ -18,14 +18,12 @@ */ package org.apache.syncope.core.workflow.flowable.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.flowable.FlowableUserWorkflowAdapter; import org.springframework.beans.factory.annotation.Autowired; @@ -59,7 +57,7 @@ public class PasswordReset extends AbstractFlowableServiceTask { 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/892778cf/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 19949eb..86a7330 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 @@ -49,7 +49,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/892778cf/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 f1cf759..de689d6 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; @@ -151,7 +149,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/892778cf/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/892778cf/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())