public class CopyNameIDFromRequest extends AbstractProfileAction
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.
Modifier and Type | Field and Description |
---|---|
private org.slf4j.Logger |
log
Class logger.
|
private NameID |
nameId
NameID to copy.
|
private SAMLObjectBuilder<NameID> |
nameIdBuilder
Builder for NameID objects.
|
private com.google.common.base.Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> |
nameIdentifierContextLookupStrategy
Strategy used to locate the name identifier context to copy from.
|
private boolean |
overwriteExisting
Flag controlling whether to overwrite an existing NameID.
|
private Response |
response
Response to modify.
|
private com.google.common.base.Function<ProfileRequestContext,Response> |
responseLookupStrategy
Strategy used to locate the
Response to operate on. |
private SAMLObjectBuilder<Subject> |
subjectBuilder
Builder for Subject objects.
|
Constructor and Description |
---|
CopyNameIDFromRequest()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private NameID |
cloneNameID()
Create an efficient field-wise copy of a
NameID . |
protected void |
doExecute(ProfileRequestContext profileRequestContext) |
protected boolean |
doPreExecute(ProfileRequestContext profileRequestContext) |
private Subject |
getAssertionSubject(Assertion assertion)
Get the subject to which the name identifier will be added.
|
void |
setNameIDContextLookupStrategy(com.google.common.base.Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> strategy)
Set the strategy used to locate the
SAMLSubjectNameIdentifierContext to copy from. |
void |
setOverwriteExisting(boolean flag)
Set whether to overwrite any existing
NameID objects found. |
void |
setResponseLookupStrategy(com.google.common.base.Function<ProfileRequestContext,Response> strategy)
Set the strategy used to locate the
Response to operate on. |
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletResponse, getLogPrefix, setHttpServletRequest, setHttpServletResponse
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
@Nonnull private final org.slf4j.Logger log
@Nonnull private final SAMLObjectBuilder<Subject> subjectBuilder
@Nonnull private final SAMLObjectBuilder<NameID> nameIdBuilder
private boolean overwriteExisting
@Nonnull private com.google.common.base.Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> nameIdentifierContextLookupStrategy
@Nonnull private com.google.common.base.Function<ProfileRequestContext,Response> responseLookupStrategy
Response
to operate on.public void setOverwriteExisting(boolean flag)
NameID
objects found.flag
- true iff the action should overwrite any existing objectspublic void setNameIDContextLookupStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,SAMLSubjectNameIdentifierContext> strategy)
SAMLSubjectNameIdentifierContext
to copy from.strategy
- lookup strategypublic void setResponseLookupStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,Response> strategy)
Response
to operate on.strategy
- lookup strategyprotected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
doPreExecute
in class AbstractProfileAction
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
doExecute
in class AbstractProfileAction
@Nonnull private Subject getAssertionSubject(@Nonnull Assertion assertion)
assertion
- the assertion being modifiedCopyright © 1999–2020 Shibboleth Consortium. All rights reserved.