public class AddSubjectConfirmationToSubjects extends AbstractProfileAction
SubjectConfirmation and adds it to the Subject of 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 will be created by this action, but if no Subject exists in
the assertions found, it will be cretaed.
An associated SubjectConfirmationData will be built to spec based on a set of
lookup functions that optionally provide various attributes. They have appropriate defaults
for the simple use case of a bearer SSO assertion but need to be overridden for other cases.
| Modifier and Type | Field and Description |
|---|---|
private com.google.common.base.Function<ProfileRequestContext,String> |
addressLookupStrategy
Optional strategy to obtain value for
SubjectConfirmationData.getAddress(). |
private SAMLObjectBuilder<SubjectConfirmation> |
confirmationBuilder
Builder for SubjectConfirmation objects.
|
private SAMLObjectBuilder<SubjectConfirmationData> |
confirmationDataBuilder
Builder for SubjectConfirmation objects.
|
private String |
confirmationMethod
Method to add.
|
private com.google.common.base.Function<ProfileRequestContext,String> |
inResponseToLookupStrategy
Optional strategy to obtain value for
SubjectConfirmationData.getInResponseTo(). |
private com.google.common.base.Function<ProfileRequestContext,Long> |
lifetimeLookupStrategy
Optional strategy to obtain value for
SubjectConfirmationData.getNotOnOrAfter(). |
private Logger |
log
Class logger.
|
private boolean |
overwriteExisting
Flag controlling whether to overwrite existing confirmations.
|
private com.google.common.base.Function<ProfileRequestContext,String> |
recipientLookupStrategy
Optional strategy to obtain value for
SubjectConfirmationData.getRecipient(). |
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 |
|---|
AddSubjectConfirmationToSubjects()
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
private SubjectConfirmation |
cloneConfirmation(SubjectConfirmation confirmation)
Create an efficient field-wise copy of a
SubjectConfirmation. |
protected void |
doExecute(ProfileRequestContext profileRequestContext) |
protected void |
doInitialize() |
protected boolean |
doPreExecute(ProfileRequestContext profileRequestContext) |
private Subject |
getAssertionSubject(Assertion assertion)
Get the subject to which the confirmation will be added.
|
void |
setAddressLookupStrategy(com.google.common.base.Function<ProfileRequestContext,String> strategy)
Set the strategy used to obtain value for
SubjectConfirmationData.getAddress(). |
void |
setInResponseToLookupStrategy(com.google.common.base.Function<ProfileRequestContext,String> strategy)
Set the strategy used to obtain value for
SubjectConfirmationData.getInResponseTo(). |
void |
setLifetimeLookupStrategy(com.google.common.base.Function<ProfileRequestContext,Long> strategy)
Set the strategy used to obtain value for
SubjectConfirmationData.getNotOnOrAfter(). |
void |
setMethod(String method)
Set the confirmation method to use.
|
void |
setOverwriteExisting(boolean flag)
Set whether to overwrite any existing
SubjectConfirmation objects found. |
void |
setRecipientLookupStrategy(com.google.common.base.Function<ProfileRequestContext,String> strategy)
Set the strategy used to obtain value for
SubjectConfirmationData.getRecipient(). |
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, setHttpServletResponsedestroy, doDestroy, initialize, isDestroyed, isInitialized@Nonnull private final SAMLObjectBuilder<Subject> subjectBuilder
@Nonnull private final SAMLObjectBuilder<SubjectConfirmation> confirmationBuilder
@Nonnull private final SAMLObjectBuilder<SubjectConfirmationData> confirmationDataBuilder
private boolean overwriteExisting
@Nonnull private com.google.common.base.Function<ProfileRequestContext,Response> responseLookupStrategy
Response to operate on.@Nullable private com.google.common.base.Function<ProfileRequestContext,String> addressLookupStrategy
SubjectConfirmationData.getAddress().@Nullable private com.google.common.base.Function<ProfileRequestContext,String> inResponseToLookupStrategy
SubjectConfirmationData.getInResponseTo().@Nullable private com.google.common.base.Function<ProfileRequestContext,String> recipientLookupStrategy
SubjectConfirmationData.getRecipient().@Nullable private com.google.common.base.Function<ProfileRequestContext,Long> lifetimeLookupStrategy
SubjectConfirmationData.getNotOnOrAfter().@NonnullAfterInit private String confirmationMethod
public AddSubjectConfirmationToSubjects()
public void setOverwriteExisting(boolean flag)
SubjectConfirmation objects found.flag - true iff the action should overwrite any existing objectspublic void setResponseLookupStrategy(@Nonnull com.google.common.base.Function<ProfileRequestContext,Response> strategy)
Response to operate on.strategy - strategy used to locate the Response to operate onpublic void setAddressLookupStrategy(@Nullable com.google.common.base.Function<ProfileRequestContext,String> strategy)
SubjectConfirmationData.getAddress().strategy - lookup strategypublic void setInResponseToLookupStrategy(@Nullable com.google.common.base.Function<ProfileRequestContext,String> strategy)
SubjectConfirmationData.getInResponseTo().strategy - lookup strategypublic void setRecipientLookupStrategy(@Nullable com.google.common.base.Function<ProfileRequestContext,String> strategy)
SubjectConfirmationData.getRecipient().strategy - lookup strategypublic void setLifetimeLookupStrategy(@Nullable com.google.common.base.Function<ProfileRequestContext,Long> strategy)
SubjectConfirmationData.getNotOnOrAfter().strategy - lookup strategypublic void setMethod(@Nonnull@NotEmpty String method)
method - confirmation method to useprotected void doInitialize()
throws net.shibboleth.utilities.java.support.component.ComponentInitializationException
doInitialize in class net.shibboleth.utilities.java.support.component.AbstractInitializableComponentnet.shibboleth.utilities.java.support.component.ComponentInitializationExceptionprotected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
doPreExecute in class AbstractProfileActionprotected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
doExecute in class AbstractProfileAction@Nonnull private Subject getAssertionSubject(@Nonnull Assertion assertion)
assertion - the assertion being modified@Nonnull private SubjectConfirmation cloneConfirmation(@Nonnull SubjectConfirmation confirmation)
SubjectConfirmation.confirmation - the object to cloneCopyright © 1999–2020 Shibboleth Consortium. All rights reserved.