Class LDAPMembershipPullActions

  • All Implemented Interfaces:
    org.apache.syncope.core.provisioning.api.pushpull.ProvisioningActions, org.apache.syncope.core.provisioning.api.pushpull.PullActions
    Direct Known Subclasses:
    ADMembershipPullActions

    public class LDAPMembershipPullActions
    extends Object
    implements org.apache.syncope.core.provisioning.api.pushpull.PullActions
    Simple action for pulling LDAP groups memberships to Syncope group memberships, when the same resource is configured for both users and groups.
    See Also:
    LDAPMembershipPropagationActions
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void after​(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?,​?> profile, org.identityconnectors.framework.common.objects.SyncDelta delta, org.apache.syncope.common.lib.to.EntityTO entity, org.apache.syncope.common.lib.to.ProvisioningReport result)
      Keep track of members of the group being updated after actual update took place.
      void afterAll​(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?,​?> profile)  
      void beforeUpdate​(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?,​?> profile, org.identityconnectors.framework.common.objects.SyncDelta delta, org.apache.syncope.common.lib.to.EntityTO entity, org.apache.syncope.common.lib.request.AnyUR anyUR)
      Keep track of members of the group being updated before actual update takes place.
      protected String getGroupMembershipAttrName​(org.apache.syncope.core.provisioning.api.Connector connector)
      Allows easy subclassing for the ConnId AD connector bundle.
      protected List<Object> getMembAttrValues​(org.identityconnectors.framework.common.objects.SyncDelta delta, org.apache.syncope.core.provisioning.api.Connector connector)
      Read values of attribute returned by getGroupMembershipAttrName(); if not present in the given delta, perform an additional read on the underlying connector.
      • Methods inherited from interface org.apache.syncope.core.provisioning.api.pushpull.ProvisioningActions

        beforeAll
      • Methods inherited from interface org.apache.syncope.core.provisioning.api.pushpull.PullActions

        beforeAssign, beforeAssign, beforeAssign, beforeDelete, beforeDeprovision, beforeLink, beforeProvision, beforeProvision, beforeProvision, beforeUnassign, beforeUnlink, moreAttrsToGet, moreAttrsToGet, onError, preprocess
    • Field Detail

      • LOG

        protected static final org.slf4j.Logger LOG
      • anyTypeDAO

        @Autowired
        protected org.apache.syncope.core.persistence.api.dao.AnyTypeDAO anyTypeDAO
      • groupDAO

        @Autowired
        protected org.apache.syncope.core.persistence.api.dao.GroupDAO groupDAO
      • userProvisioningManager

        @Autowired
        protected org.apache.syncope.core.provisioning.api.UserProvisioningManager userProvisioningManager
    • Constructor Detail

      • LDAPMembershipPullActions

        public LDAPMembershipPullActions()
    • Method Detail

      • getGroupMembershipAttrName

        protected String getGroupMembershipAttrName​(org.apache.syncope.core.provisioning.api.Connector connector)
        Allows easy subclassing for the ConnId AD connector bundle.
        Parameters:
        connector - A Connector instance to query for the groupMemberAttribute property name
        Returns:
        the name of the attribute used to keep track of group memberships
      • getMembAttrValues

        protected List<Object> getMembAttrValues​(org.identityconnectors.framework.common.objects.SyncDelta delta,
                                                 org.apache.syncope.core.provisioning.api.Connector connector)
        Read values of attribute returned by getGroupMembershipAttrName(); if not present in the given delta, perform an additional read on the underlying connector.
        Parameters:
        delta - representing the pulling group
        connector - associated to the current resource
        Returns:
        value of attribute returned by getGroupMembershipAttrName(org.apache.syncope.core.provisioning.api.Connector)
      • beforeUpdate

        @Transactional(readOnly=true)
        public void beforeUpdate​(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?,​?> profile,
                                 org.identityconnectors.framework.common.objects.SyncDelta delta,
                                 org.apache.syncope.common.lib.to.EntityTO entity,
                                 org.apache.syncope.common.lib.request.AnyUR anyUR)
                          throws org.quartz.JobExecutionException
        Keep track of members of the group being updated before actual update takes place. This is not needed on
        • PullActions.beforeProvision(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?, ?>, org.identityconnectors.framework.common.objects.SyncDelta, org.apache.syncope.common.lib.request.AnyCR) because the pulling group does not exist yet on Syncope
        • PullActions.beforeDelete(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?, ?>, org.identityconnectors.framework.common.objects.SyncDelta, org.apache.syncope.common.lib.to.EntityTO) because group delete cascades as membership removal for all users involved
        Specified by:
        beforeUpdate in interface org.apache.syncope.core.provisioning.api.pushpull.PullActions
        Throws:
        org.quartz.JobExecutionException
      • after

        public void after​(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?,​?> profile,
                          org.identityconnectors.framework.common.objects.SyncDelta delta,
                          org.apache.syncope.common.lib.to.EntityTO entity,
                          org.apache.syncope.common.lib.to.ProvisioningReport result)
                   throws org.quartz.JobExecutionException
        Keep track of members of the group being updated after actual update took place.
        Specified by:
        after in interface org.apache.syncope.core.provisioning.api.pushpull.PullActions
        Throws:
        org.quartz.JobExecutionException
      • afterAll

        @Transactional(propagation=REQUIRES_NEW)
        public void afterAll​(org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile<?,​?> profile)
                      throws org.quartz.JobExecutionException
        Specified by:
        afterAll in interface org.apache.syncope.core.provisioning.api.pushpull.ProvisioningActions
        Throws:
        org.quartz.JobExecutionException