public class CopyNameIdentifierFromRequest extends AbstractProfileAction
NameIdentifier
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 NameIdentifier
is a SAMLSubjectNameIdentifierContext
returned by a lookup
strategy.
Modifier and Type | Field and Description |
---|---|
private org.slf4j.Logger |
log
Class logger.
|
private NameIdentifier |
nameIdentifier
NameIdentifier to copy.
|
private SAMLObjectBuilder<NameIdentifier> |
nameIdentifierBuilder
Builder for NameIdentifier 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 NameIdentifier.
|
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 |
---|
CopyNameIdentifierFromRequest()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private NameIdentifier |
cloneNameIdentifier()
Create an efficient field-wise copy of a
NameIdentifier . |
protected void |
doExecute(ProfileRequestContext profileRequestContext) |
protected boolean |
doPreExecute(ProfileRequestContext profileRequestContext) |
private Subject |
getStatementSubject(SubjectStatement statement)
Get the subject to which the name identifier will be added.
|
void |
setNameIdentifierContextLookupStrategy(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
NameIdentifier 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<NameIdentifier> nameIdentifierBuilder
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.@Nullable private NameIdentifier nameIdentifier
public CopyNameIdentifierFromRequest()
public void setOverwriteExisting(boolean flag)
NameIdentifier
objects found.flag
- true iff the action should overwrite any existing objectspublic void setNameIdentifierContextLookupStrategy(@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 getStatementSubject(@Nonnull SubjectStatement statement)
statement
- the statement being modified@Nonnull private NameIdentifier cloneNameIdentifier()
NameIdentifier
.Copyright © 1999–2020 Shibboleth Consortium. All rights reserved.