Class AddDelegationRestrictionToAssertions
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.saml.saml2.profile.delegation.impl.AddDelegationRestrictionToAssertions
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
Action which adds a
DelegationRestrictionType Condition to each Assertion
contained within the outbound Response.
If the inbound assertion token specified in LibertySSOSContext contains an existing
DelegationRestrictionType condition, it is cloned, and the current SAML presenter entityID
is added as a new Delegate. Otherwise a new instance of DelegationRestrictionType
is created and a single new Delegate added.
In both cases the new delegate entityID is obtained from the SAMLPresenterEntityContext located
using the corresponding lookup function. The new delegate is augmented with the SAML subject confirmation method
obtained from the current LibertySSOSContext.
-
Field Summary
FieldsModifier and TypeFieldDescriptionList of assertions to modify.private AssertionThe delegated Assertion that was attested.private StringThe subject confirmation method successfully used to confirm the assertion by the presenter.private InstantThe instant of delegation.Function used to resolve the Liberty context to populate.private final org.slf4j.LoggerClass logger.Strategy used to locate the SAMLPresenterEntityContext.private StringThe presenting entity which successfully attested the Assertion token.private Function<ProfileRequestContext,Response> Strategy used to locate the Response to operate on. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddDelegationRestriction(ProfileRequestContext profileRequestContext, Conditions conditions) Add a delegation restriction condition to the specified conditions.protected DelegatebuildDelegate(ProfileRequestContext profileRequestContext) Build the Delegate child for the DelegationRestrictionType Condition, based on the current request context.protected DelegationRestrictionTypebuildDelegationRestriction(ProfileRequestContext profileRequestContext) Using the existing attested Assertion from the presenter as a context, build the appropriate DelegationRestrictionType Condition.protected voiddoExecute(ProfileRequestContext profileRequestContext) protected booleandoPreExecute(ProfileRequestContext profileRequestContext) protected DelegationRestrictionTypegetDelegationRestrictionCondition(Conditions conditions) Get the DelegationRestrictionType Condition from the supplied Conditions, if present.voidSet the strategy used to locate theLibertySSOSContextto populate.voidSet the strategy used to locate theSAMLPresenterEntityContext.voidSet the strategy used to locate the Response to operate on.Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, setHttpServletRequest, setHttpServletRequestSupplier, setHttpServletResponse, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
responseLookupStrategy
Strategy used to locate the Response to operate on. -
presenterContextLookupStrategy
@Nonnull private Function<ProfileRequestContext,SAMLPresenterEntityContext> presenterContextLookupStrategyStrategy used to locate the SAMLPresenterEntityContext. -
libertyContextLookupStrategy
Function used to resolve the Liberty context to populate. -
assertions
List of assertions to modify. -
attestedAssertion
The delegated Assertion that was attested. -
attestedSubjectConfirmationMethod
The subject confirmation method successfully used to confirm the assertion by the presenter. -
presenterEntityID
The presenting entity which successfully attested the Assertion token. -
delegationInstant
The instant of delegation.
-
-
Constructor Details
-
AddDelegationRestrictionToAssertions
public AddDelegationRestrictionToAssertions()Constructor.
-
-
Method Details
-
setLibertyContextLookupStrategy
public void setLibertyContextLookupStrategy(@Nonnull Function<ProfileRequestContext, LibertySSOSContext> strategy) Set the strategy used to locate theLibertySSOSContextto populate.- Parameters:
strategy- lookup strategy
-
setResponseLookupStrategy
Set the strategy used to locate the Response to operate on.- Parameters:
strategy- lookup strategy
-
setPresenterLookupStrategy
public void setPresenterLookupStrategy(@Nonnull Function<ProfileRequestContext, SAMLPresenterEntityContext> strategy) Set the strategy used to locate theSAMLPresenterEntityContext.- Parameters:
strategy- lookup strategy
-
doPreExecute
- Overrides:
doPreExecutein classAbstractConditionalProfileAction
-
doExecute
- Overrides:
doExecutein classAbstractProfileAction
-
addDelegationRestriction
protected void addDelegationRestriction(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull Conditions conditions) Add a delegation restriction condition to the specified conditions.- Parameters:
profileRequestContext- the current profile request contextconditions- the conditions instance to modify
-
buildDelegationRestriction
@Nullable protected DelegationRestrictionType buildDelegationRestriction(@Nonnull ProfileRequestContext profileRequestContext) Using the existing attested Assertion from the presenter as a context, build the appropriate DelegationRestrictionType Condition.- Parameters:
profileRequestContext- the current profile request context- Returns:
- new DelegationRestrictionType Condition, or null if the condition could not be build
-
getDelegationRestrictionCondition
@Nullable protected DelegationRestrictionType getDelegationRestrictionCondition(@Nullable Conditions conditions) Get the DelegationRestrictionType Condition from the supplied Conditions, if present.- Parameters:
conditions- the Assertion Conditions to process- Returns:
- the DelegationRestrictionType Condition object, or null if not present
-
buildDelegate
Build the Delegate child for the DelegationRestrictionType Condition, based on the current request context.- Parameters:
profileRequestContext- the- Returns:
- the new Delegate instance
-