Class LDAPMembershipPullActions
- java.lang.Object
-
- org.apache.syncope.core.provisioning.java.pushpull.LDAPMembershipPullActions
-
- All Implemented Interfaces:
ProvisioningActions
,PullActions
- Direct Known Subclasses:
ADMembershipPullActions
public class LDAPMembershipPullActions extends Object implements 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
-
-
Field Summary
Fields Modifier and Type Field Description protected AnyTypeDAO
anyTypeDAO
protected GroupDAO
groupDAO
protected InboundMatcher
inboundMatcher
protected static Logger
LOG
protected Map<String,Set<String>>
membershipsAfter
protected Map<String,Set<String>>
membershipsBefore
protected UserProvisioningManager
userProvisioningManager
-
Constructor Summary
Constructors Constructor Description LDAPMembershipPullActions()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
after(ProvisioningProfile<?,?> profile, SyncDelta delta, EntityTO entity, ProvisioningReport result)
Keep track of members of the group being updated after actual update took place.void
afterAll(ProvisioningProfile<?,?> profile)
Action to be executed after the provisioning (push / pull) task completion.void
beforeUpdate(ProvisioningProfile<?,?> profile, SyncDelta delta, EntityTO entity, AnyUR anyUR)
Keep track of members of the group being updated before actual update takes place.protected String
getGroupMembershipAttrName(Connector connector)
Allows easy subclassing for the ConnId AD connector bundle.protected List<Object>
getMembAttrValues(SyncDelta delta, 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 class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
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 Logger LOG
-
anyTypeDAO
@Autowired protected AnyTypeDAO anyTypeDAO
-
groupDAO
@Autowired protected GroupDAO groupDAO
-
inboundMatcher
@Autowired protected InboundMatcher inboundMatcher
-
userProvisioningManager
@Autowired protected UserProvisioningManager userProvisioningManager
-
-
Method Detail
-
getGroupMembershipAttrName
protected String getGroupMembershipAttrName(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(SyncDelta delta, 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 groupconnector
- 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(ProvisioningProfile<?,?> profile, SyncDelta delta, EntityTO entity, AnyUR anyUR) throws org.quartz.JobExecutionException
Keep track of members of the group being updated before actual update takes place. This is not needed onPullActions.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 SyncopePullActions.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
MatchingRule.UPDATE
(default matching rule) is applied.- Specified by:
beforeUpdate
in interfacePullActions
- Parameters:
profile
- profile of the pull being executed.delta
- retrieved pull informationentity
- entityanyUR
- modification- Throws:
org.quartz.JobExecutionException
- in case of generic failure.
-
after
public void after(ProvisioningProfile<?,?> profile, SyncDelta delta, EntityTO entity, ProvisioningReport result) throws org.quartz.JobExecutionException
Keep track of members of the group being updated after actual update took place. Action to be executed after each local entity pull.- Specified by:
after
in interfacePullActions
- Parameters:
profile
- profile of the pull being executed.delta
- retrieved pull information (may be modified by beforeProvisionTO / beforeUpdate / beforeDelete)entity
- entityresult
- global pull results at the current pull step- Throws:
org.quartz.JobExecutionException
- in case of generic failure
-
afterAll
@Transactional(propagation=REQUIRES_NEW) public void afterAll(ProvisioningProfile<?,?> profile) throws org.quartz.JobExecutionException
Description copied from interface:ProvisioningActions
Action to be executed after the provisioning (push / pull) task completion.- Specified by:
afterAll
in interfaceProvisioningActions
- Parameters:
profile
- provisioning profile- Throws:
org.quartz.JobExecutionException
- in case of generic failure
-
-