Class CopyNameIdentifierFromRequest
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.profile.action.AbstractProfileAction
-
- org.opensaml.saml.saml1.profile.impl.CopyNameIdentifierFromRequest
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction
public class CopyNameIdentifierFromRequest extends AbstractProfileAction
Action that builds aNameIdentifierand adds it to theSubjectof all the statements in all the assertions found in aResponse. The message to update is returned by a lookup strategy, by default the message returned byInOutOperationContext.getOutboundMessageContext().No assertions or statements will be created by this action, but if no
Subjectexists in the statements found, it will be created.The source of the
NameIdentifieris aSAMLSubjectNameIdentifierContextreturned by a lookup strategy.
-
-
Field Summary
Fields Modifier and Type Field Description private org.slf4j.LoggerlogClass logger.private NameIdentifiernameIdentifierNameIdentifier to copy.private SAMLObjectBuilder<NameIdentifier>nameIdentifierBuilderBuilder for NameIdentifier objects.private Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext>nameIdentifierContextLookupStrategyStrategy used to locate the name identifier context to copy from.private booleanoverwriteExistingFlag controlling whether to overwrite an existing NameIdentifier.private ResponseresponseResponse to modify.private Function<ProfileRequestContext,Response>responseLookupStrategyStrategy used to locate theResponseto operate on.private SAMLObjectBuilder<Subject>subjectBuilderBuilder for Subject objects.
-
Constructor Summary
Constructors Constructor Description CopyNameIdentifierFromRequest()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private NameIdentifiercloneNameIdentifier()Create an efficient field-wise copy of aNameIdentifier.protected voiddoExecute(ProfileRequestContext profileRequestContext)protected booleandoPreExecute(ProfileRequestContext profileRequestContext)private SubjectgetStatementSubject(SubjectStatement statement)Get the subject to which the name identifier will be added.voidsetNameIdentifierContextLookupStrategy(Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> strategy)Set the strategy used to locate theSAMLSubjectNameIdentifierContextto copy from.voidsetOverwriteExisting(boolean flag)Set whether to overwrite any existingNameIdentifierobjects found.voidsetResponseLookupStrategy(Function<ProfileRequestContext,Response> strategy)Set the strategy used to locate theResponseto operate on.-
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, setHttpServletRequest, setHttpServletRequestSupplier, setHttpServletResponse, setHttpServletResponseSupplier
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
subjectBuilder
@Nonnull private final SAMLObjectBuilder<Subject> subjectBuilder
Builder for Subject objects.
-
nameIdentifierBuilder
@Nonnull private final SAMLObjectBuilder<NameIdentifier> nameIdentifierBuilder
Builder for NameIdentifier objects.
-
overwriteExisting
private boolean overwriteExisting
Flag controlling whether to overwrite an existing NameIdentifier.
-
nameIdentifierContextLookupStrategy
@Nonnull private Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> nameIdentifierContextLookupStrategy
Strategy used to locate the name identifier context to copy from.
-
responseLookupStrategy
@Nonnull private Function<ProfileRequestContext,Response> responseLookupStrategy
Strategy used to locate theResponseto operate on.
-
nameIdentifier
@Nullable private NameIdentifier nameIdentifier
NameIdentifier to copy.
-
response
@Nullable private Response response
Response to modify.
-
-
Method Detail
-
setOverwriteExisting
public void setOverwriteExisting(boolean flag)
Set whether to overwrite any existingNameIdentifierobjects found.- Parameters:
flag- true iff the action should overwrite any existing objects
-
setNameIdentifierContextLookupStrategy
public void setNameIdentifierContextLookupStrategy(@Nonnull Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> strategy)Set the strategy used to locate theSAMLSubjectNameIdentifierContextto copy from.- Parameters:
strategy- lookup strategy
-
setResponseLookupStrategy
public void setResponseLookupStrategy(@Nonnull Function<ProfileRequestContext,Response> strategy)Set the strategy used to locate theResponseto operate on.- Parameters:
strategy- lookup strategy
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)- Overrides:
doPreExecutein classAbstractProfileAction
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)- Overrides:
doExecutein classAbstractProfileAction
-
getStatementSubject
@Nonnull private Subject getStatementSubject(@Nonnull SubjectStatement statement)
Get the subject to which the name identifier will be added.- Parameters:
statement- the statement being modified- Returns:
- the subject to which the name identifier will be added
-
cloneNameIdentifier
@Nonnull private NameIdentifier cloneNameIdentifier()
Create an efficient field-wise copy of aNameIdentifier.- Returns:
- the copy
-
-