Class CopyNameIDFromRequest
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.saml.saml2.profile.impl.CopyNameIDFromRequest
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction
Action that builds a
NameID and adds it to the Subject of all the statements
in all the assertions found in a Response. The message to update is returned by a lookup
strategy, by default the message returned by InOutOperationContext.getOutboundMessageContext().
No assertions or statements will be created by this action, but if no Subject exists in
the statements found, it will be created.
The source of the NameID is a SAMLSubjectNameIdentifierContext returned by a lookup
strategy.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.slf4j.LoggerClass logger.private NameIDNameID to copy.private final SAMLObjectBuilder<NameID>Builder for NameID objects.Strategy used to locate the name identifier context to copy from.private booleanFlag controlling whether to overwrite an existing NameID.private ResponseResponse to modify.private Function<ProfileRequestContext,Response> Strategy used to locate theResponseto operate on.private final SAMLObjectBuilder<Subject>Builder for Subject objects. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate NameIDCreate an efficient field-wise copy of aNameID.protected voiddoExecute(ProfileRequestContext profileRequestContext) protected booleandoPreExecute(ProfileRequestContext profileRequestContext) private SubjectgetAssertionSubject(Assertion assertion) Get the subject to which the name identifier will be added.voidsetNameIDContextLookupStrategy(Function<ProfileRequestContext, SAMLSubjectNameIdentifierContext> strategy) Set the strategy used to locate theSAMLSubjectNameIdentifierContextto copy from.voidsetOverwriteExisting(boolean flag) Set whether to overwrite any existingNameIDobjects found.voidSet the strategy used to locate theResponseto operate on.Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
subjectBuilder
Builder for Subject objects. -
nameIdBuilder
Builder for NameID objects. -
overwriteExisting
private boolean overwriteExistingFlag controlling whether to overwrite an existing NameID. -
nameIdentifierContextLookupStrategy
@Nonnull private Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> nameIdentifierContextLookupStrategyStrategy used to locate the name identifier context to copy from. -
responseLookupStrategy
Strategy used to locate theResponseto operate on. -
nameId
NameID to copy. -
response
Response to modify.
-
-
Constructor Details
-
CopyNameIDFromRequest
public CopyNameIDFromRequest()Constructor.
-
-
Method Details
-
setOverwriteExisting
public void setOverwriteExisting(boolean flag) Set whether to overwrite any existingNameIDobjects found.- Parameters:
flag- true iff the action should overwrite any existing objects
-
setNameIDContextLookupStrategy
public void setNameIDContextLookupStrategy(@Nonnull Function<ProfileRequestContext, SAMLSubjectNameIdentifierContext> strategy) Set the strategy used to locate theSAMLSubjectNameIdentifierContextto copy from.- Parameters:
strategy- lookup strategy
-
setResponseLookupStrategy
Set the strategy used to locate theResponseto operate on.- Parameters:
strategy- lookup strategy
-
doPreExecute
- Overrides:
doPreExecutein classAbstractProfileAction
-
doExecute
- Overrides:
doExecutein classAbstractProfileAction
-
getAssertionSubject
Get the subject to which the name identifier will be added.- Parameters:
assertion- the assertion being modified- Returns:
- the assertion to which the name identifier will be added
-
cloneNameID
Create an efficient field-wise copy of aNameID.- Returns:
- the copy
-