Interface PropagationManager
-
- All Known Implementing Classes:
DefaultPropagationManager
public interface PropagationManager
-
-
Field Summary
Fields Modifier and Type Field Description static StringMANDATORY_MISSING_ATTR_NAMEName for special propagation attribute used to indicate whether there are attributes, marked as mandatory in the mapping but not to be propagated.static StringMANDATORY_NULL_OR_EMPTY_ATTR_NAMEName for special propagation attribute used to indicate whether there are attributes, marked as mandatory in the mapping but about to be propagated as null or empty.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description List<PropagationTaskInfo>createTasks(Realm realm, PropagationByResource<String> propByRes, Collection<String> excludedResources)Create the needed tasks for the realm for each resource associated, unless inexcludedResources.List<PropagationTaskInfo>getCreateTasks(AnyTypeKind kind, String key, Boolean enable, PropagationByResource<String> propByRes, Collection<Attr> vAttrs, Collection<String> excludedResources)Create the tasks for every associated resource, unless inexcludedResources.List<PropagationTaskInfo>getDeleteTasks(AnyTypeKind kind, String key, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<String> excludedResources)Create the delete tasks from each resource associated, unless inexcludedResources.List<PropagationTaskInfo>getUpdateTasks(AnyUR anyUR, AnyTypeKind kind, String key, List<String> changePwdRes, Boolean enable, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<Attr> vAttrs, Collection<String> excludedResources)Create the update tasks on each resource associated, unless inexcludedResources.List<PropagationTaskInfo>getUserCreateTasks(String key, String password, Boolean enable, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<Attr> vAttrs, Collection<String> excludedResources)Create the user tasks for every associated resource, unless inexcludedResources.List<PropagationTaskInfo>getUserUpdateTasks(UserWorkflowResult<Pair<UserUR,Boolean>> wfResult)Create the update tasks for the user on each resource associated; propagate password update only to requested resources.List<PropagationTaskInfo>getUserUpdateTasks(UserWorkflowResult<Pair<UserUR,Boolean>> wfResult, List<String> changePwdRes, Collection<String> excludedResources)Create the update tasks for the user on each resource associated, unless inexcludedResources.PropagationTaskInfonewTask(DerAttrHandler derAttrHandler, Any<?> any, ExternalResource resource, ResourceOperation operation, Provision provision, Stream<Item> mappingItems, Pair<String,Set<Attribute>> preparedAttrs)Map<Pair<String,String>,Set<Attribute>>prepareAttrs(AnyTypeKind kind, String key, String password, List<String> changePwdRes, Boolean enable, Collection<String> excludedResources)Prepare attributes for propagation.Map<Pair<String,String>,Set<Attribute>>prepareAttrs(Realm realm)Prepare attributes for propagation.List<PropagationTaskInfo>setAttributeDeltas(List<PropagationTaskInfo> tasks, Map<Pair<String,String>,Set<Attribute>> beforeAttrs)Enrich the provided tasks with attribute deltas.
-
-
-
Field Detail
-
MANDATORY_MISSING_ATTR_NAME
static final String MANDATORY_MISSING_ATTR_NAME
Name for special propagation attribute used to indicate whether there are attributes, marked as mandatory in the mapping but not to be propagated.- See Also:
- Constant Field Values
-
MANDATORY_NULL_OR_EMPTY_ATTR_NAME
static final String MANDATORY_NULL_OR_EMPTY_ATTR_NAME
Name for special propagation attribute used to indicate whether there are attributes, marked as mandatory in the mapping but about to be propagated as null or empty.- See Also:
- Constant Field Values
-
-
Method Detail
-
getCreateTasks
List<PropagationTaskInfo> getCreateTasks(AnyTypeKind kind, String key, Boolean enable, PropagationByResource<String> propByRes, Collection<Attr> vAttrs, Collection<String> excludedResources)
Create the tasks for every associated resource, unless inexcludedResources.- Parameters:
kind- any type kindkey- any keyenable- whether any should be enabled or notpropByRes- operation to be performed per resourcevAttrs- virtual attributes to be setexcludedResources- external resources performing not to be considered for propagation- Returns:
- list of propagation tasks
-
getUserCreateTasks
List<PropagationTaskInfo> getUserCreateTasks(String key, String password, Boolean enable, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<Attr> vAttrs, Collection<String> excludedResources)
Create the user tasks for every associated resource, unless inexcludedResources.- Parameters:
key- user keypassword- to be setenable- whether user must be enabled or notpropByRes- operation to be performed per resourcepropByLinkedAccount- operation to be performed for linked accountsvAttrs- virtual attributes to be setexcludedResources- external resources not to be considered for propagation- Returns:
- list of propagation tasks
-
getUpdateTasks
List<PropagationTaskInfo> getUpdateTasks(AnyUR anyUR, AnyTypeKind kind, String key, List<String> changePwdRes, Boolean enable, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<Attr> vAttrs, Collection<String> excludedResources)
Create the update tasks on each resource associated, unless inexcludedResources.- Parameters:
anyUR- update requestkind- any type kindkey- any keychangePwdRes- the resources in which the password must be included in the propagation attributesenable- whether any should be enabled or not, may be null to leave unchangedpropByRes- operation to be performed per resourcepropByLinkedAccount- operation to be performed for linked accountsvAttrs- virtual attributes to be setexcludedResources- external resource keys not to be considered for propagation- Returns:
- list of propagation tasks
-
getUserUpdateTasks
List<PropagationTaskInfo> getUserUpdateTasks(UserWorkflowResult<Pair<UserUR,Boolean>> wfResult, List<String> changePwdRes, Collection<String> excludedResources)
Create the update tasks for the user on each resource associated, unless inexcludedResources.- Parameters:
wfResult- user to be propagated (and info associated), as per result from workflowchangePwdRes- the resources in which the password must be included in the propagation attributesexcludedResources- external resources not to be considered for propagation- Returns:
- list of propagation tasks
-
getUserUpdateTasks
List<PropagationTaskInfo> getUserUpdateTasks(UserWorkflowResult<Pair<UserUR,Boolean>> wfResult)
Create the update tasks for the user on each resource associated; propagate password update only to requested resources.- Parameters:
wfResult- user to be propagated (and info associated), as per result from workflow- Returns:
- list of propagation tasks
-
getDeleteTasks
List<PropagationTaskInfo> getDeleteTasks(AnyTypeKind kind, String key, PropagationByResource<String> propByRes, PropagationByResource<Pair<String,String>> propByLinkedAccount, Collection<String> excludedResources)
Create the delete tasks from each resource associated, unless inexcludedResources.- Parameters:
kind- any type kindkey- any keypropByRes- operation to be performed per resourcepropByLinkedAccount- operation to be performed for linked accountsexcludedResources- external resource keys not to be considered for propagation- Returns:
- list of propagation tasks
-
newTask
PropagationTaskInfo newTask(DerAttrHandler derAttrHandler, Any<?> any, ExternalResource resource, ResourceOperation operation, Provision provision, Stream<Item> mappingItems, Pair<String,Set<Attribute>> preparedAttrs)
-
createTasks
List<PropagationTaskInfo> createTasks(Realm realm, PropagationByResource<String> propByRes, Collection<String> excludedResources)
Create the needed tasks for the realm for each resource associated, unless inexcludedResources.- Parameters:
realm- realmpropByRes- operation to be performed per resourceexcludedResources- external resource keys not to be considered for propagation- Returns:
- list of propagation tasks
-
prepareAttrs
Map<Pair<String,String>,Set<Attribute>> prepareAttrs(AnyTypeKind kind, String key, String password, List<String> changePwdRes, Boolean enable, Collection<String> excludedResources)
Prepare attributes for propagation.- Parameters:
kind- any type kindkey- any keypassword- to be set (for users)changePwdRes- the resources in which the password must be included in the propagation attributes (for users)enable- whether any should be enabled or not, may be null to leave unchangedexcludedResources- external resource keys not to be considered for propagation- Returns:
- map with prepared attributes per External Resource
-
prepareAttrs
Map<Pair<String,String>,Set<Attribute>> prepareAttrs(Realm realm)
Prepare attributes for propagation.- Parameters:
realm- realm- Returns:
- map with prepared attributes per External Resource
-
setAttributeDeltas
List<PropagationTaskInfo> setAttributeDeltas(List<PropagationTaskInfo> tasks, Map<Pair<String,String>,Set<Attribute>> beforeAttrs)
Enrich the provided tasks with attribute deltas.- Parameters:
tasks- propagation tasksbeforeAttrs- attribute values before update- Returns:
- enriched propagation tasks
-
-