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 org.slf4j.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, setHttpServletResponse
destroy, doDestroy, initialize, isDestroyed, isInitialized
@Nonnull private final org.slf4j.Logger log
@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.AbstractInitializableComponent
net.shibboleth.utilities.java.support.component.ComponentInitializationException
protected 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 modified@Nonnull private SubjectConfirmation cloneConfirmation(@Nonnull SubjectConfirmation confirmation)
SubjectConfirmation
.confirmation
- the object to cloneCopyright © 1999–2020 Shibboleth Consortium. All rights reserved.