public class LdapGroupProvisioner extends LdapProvisioner<LdapGroupProvisionerConfiguration>
ldapSystem, schemaRelatedLdapErrors
activeProvisioner, config, fullSyncMode, LOG, provisionerConfigName, provisionerDisplayName
Constructor and Description |
---|
LdapGroupProvisioner(String provisionerName,
LdapGroupProvisionerConfiguration config,
boolean fullSyncMode) |
Modifier and Type | Method and Description |
---|---|
protected void |
addMembership(GrouperGroupInfo grouperGroupInfo,
LdapGroup ldapGroup,
Subject subject,
LdapUser ldapUser)
Action method that handles membership additions where a person-subject is added to a
group.
|
protected LdapGroup |
createGroup(GrouperGroupInfo grouperGroup,
Collection<Subject> initialMembers)
Provisioning a new Group in the target system.
|
protected void |
deleteGroup(GrouperGroupInfo grouperGroupInfo,
LdapGroup ldapGroup)
Action method that handles group removal.
|
protected void |
deleteMembership(GrouperGroupInfo grouperGroupInfo,
LdapGroup ldapGroup,
Subject subject,
LdapUser ldapUser)
Abstract action method that handles membership removals.
|
protected void |
doFullSync_cleanupExtraGroups(JobStatistics stats)
This method's responsibility is find extra groups within Grouper's responsibility that
exist in the target system.
|
protected boolean |
doFullSync(GrouperGroupInfo grouperGroupInfo,
LdapGroup ldapGroup,
Set<Subject> correctSubjects,
Map<Subject,LdapUser> tsUserMap,
Set<LdapUser> correctTSUsers,
JobStatistics stats)
This method's responsibility is to make sure that group's only provisioned memberships are those
of correctSubjects.
|
protected Map<GrouperGroupInfo,LdapGroup> |
fetchTargetSystemGroups(Collection<GrouperGroupInfo> grouperGroupsToFetch)
This fetches group information from the target system.
|
static Class<? extends ProvisionerConfiguration> |
getPropertyClass() |
protected void |
scheduleGroupModification(GrouperGroupInfo grouperGroupInfo,
LdapGroup ldapGroup,
org.ldaptive.AttributeModificationType modType,
Collection<String> membershipValuesToChange) |
protected LdapGroup |
updateGroupFromTemplate(GrouperGroupInfo grouperGroupInfo,
LdapGroup existingLdapGroup)
This method compares the existing LdapGroup to how the groupCreationTemplate might have
changed due to group changes (eg, a changed group name) or due to template changes
|
createOuInExistingLocation, createUser, ensureLdapOusExist, ensureLdapOusExist, fetchTargetSystemUsers, finishCoordination, finishProvisioningBatch, getLdapSystem, getUserLdapFilter, isStringDnEscaped, isStringEscapedForLdapFilter, isWorkItemMakingChange, performLdapAdd, populateJexlMap, sanityCheckDnAttributesOfLdif, scheduleLdapModification, stringHasBeenDnEscaped, stringHasBeenLdapFilterEscaped
cacheGroup, evaluateJexlExpression, fetchTargetSystemGroup, fetchTargetSystemGroupsInBatches, fetchTargetSystemUser, filterWorkItems, flushCachesIfNecessary, getAllGroupsForProvisioner, getConfig, getConfigName, getCurrentWorkItem, getDisplayName, getGroupInfo, getGroupInfoOfExistingGroup, getGroupInfoOfExistingGroup, getGroupJexlMap, getSubject, getSubjectCacheKey, getSubjectCacheKey, getTargetSystemUser, isFullSyncMode, provisionBatchOfItems, provisionItem, setCurrentWorkItem, shouldGroupBeProvisioned, shouldLogAboutMissingSubjects, shouldWorkItemBeProcessed, startCoordination, startProvisioningBatch, toString, uncacheAllGroups, uncacheGroup, warnAboutCacheSizeConcerns, workItemShouldBeHandledByFullSyncOfEverything
public LdapGroupProvisioner(String provisionerName, LdapGroupProvisionerConfiguration config, boolean fullSyncMode)
public static Class<? extends ProvisionerConfiguration> getPropertyClass()
protected void addMembership(GrouperGroupInfo grouperGroupInfo, LdapGroup ldapGroup, Subject subject, LdapUser ldapUser) throws PspException
Provisioner
addMembership
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
grouperGroupInfo
- The group to which the subject needs to be added as a memberldapGroup
- A TSGroupClass created for group by fetchTargetSystemGroup. This will
be null for systems that do not need target system groups.subject
- The (person) subject that needs to be provisioned as a member of 'group'ldapUser
- A TSUserClass created for the subject by fetchTargetSystemUser. This will
be null for systems that do not need target system users.PspException
protected void scheduleGroupModification(GrouperGroupInfo grouperGroupInfo, LdapGroup ldapGroup, org.ldaptive.AttributeModificationType modType, Collection<String> membershipValuesToChange)
protected void deleteMembership(GrouperGroupInfo grouperGroupInfo, LdapGroup ldapGroup, Subject subject, LdapUser ldapUser) throws PspException
Provisioner
deleteMembership
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
grouperGroupInfo
- The group to which the subject needs to be removed as a memberldapGroup
- TSGroupClass for the 'group.' This is null for systems that do not need
target-system group infosubject
- The subject that needs to be deprovisioned as a member of 'group'ldapUser
- TSUserClass for the 'subject.' This is null for systems that do not need
target-system user infoPspException
protected boolean doFullSync(GrouperGroupInfo grouperGroupInfo, LdapGroup ldapGroup, Set<Subject> correctSubjects, Map<Subject,LdapUser> tsUserMap, Set<LdapUser> correctTSUsers, JobStatistics stats) throws PspException
Provisioner
doFullSync
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
grouperGroupInfo
- Grouper group to fully synchronize with target systemldapGroup
- TSGroupClass that maps to group.correctSubjects
- What subjects are members in the Grouper RegistrytsUserMap
- Map of TargetSystemUsers which map to the correctSubjects. This will be empty
for provisioners that do not use TargetSystemUsers.correctTSUsers
- A list of the TSUsers that correspond to correctSubjects. This might be a subset
of the TSUsers in the tsUserMap.stats
- A holder of the number of changes the fullSync performsPspException
protected LdapGroup updateGroupFromTemplate(GrouperGroupInfo grouperGroupInfo, LdapGroup existingLdapGroup) throws PspException
grouperGroupInfo
- existingLdapGroup
- PspException
protected void doFullSync_cleanupExtraGroups(JobStatistics stats) throws PspException
Provisioner
doFullSync_cleanupExtraGroups
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
PspException
protected LdapGroup createGroup(GrouperGroupInfo grouperGroup, Collection<Subject> initialMembers) throws PspException
Provisioner
createGroup
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
initialMembers
- What members should in the provisioned group once the method completes.
This is generally empty during incremental/changelog-based provisioning, but may list users
at other times.PspException
protected Map<GrouperGroupInfo,LdapGroup> fetchTargetSystemGroups(Collection<GrouperGroupInfo> grouperGroupsToFetch) throws PspException
Provisioner
fetchTargetSystemGroups
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
PspException
protected void deleteGroup(GrouperGroupInfo grouperGroupInfo, LdapGroup ldapGroup) throws PspException
Provisioner
deleteGroup
in class Provisioner<LdapGroupProvisionerConfiguration,LdapUser,LdapGroup>
PspException
Copyright © 2016 Internet2. All rights reserved.