Class AbstractEncryptAction
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- org.opensaml.profile.action.AbstractProfileAction
-
- org.opensaml.profile.action.AbstractConditionalProfileAction
-
- org.opensaml.saml.saml2.profile.impl.AbstractEncryptAction
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction
- Direct Known Subclasses:
EncryptAssertions,EncryptAttributes,EncryptNameIDs
public abstract class AbstractEncryptAction extends AbstractConditionalProfileAction
Abstract base class for actions that perform simple unicast SAML encryption to a single decrypting party.The
EncryptionContextgoverning the encryption process is located by a lookup strategy, by default a child of the outbound message context.An optional recipient name is also obtained from a lookup strategy.
-
-
Field Summary
Fields Modifier and Type Field Description private EncrypterencrypterThe encryption object.private Function<ProfileRequestContext,EncryptionContext>encryptionCtxLookupStrategyStrategy used to locate theEncryptionContext.private Predicate<ProfileRequestContext>encryptToSelfPredicate used to determine whether to perform encrypt-to-self.private Function<Pair<ProfileRequestContext,EncryptionParameters>,List<EncryptionParameters>>encryptToSelfParametersStrategyStrategy used to resolve the encrypt-to-self parameters.private Function<ProfileRequestContext,Encrypter.KeyPlacement>keyPlacementLookupStrategyStrategy used to determine encrypted key placement.private org.slf4j.LoggerlogClass logger.private Function<ProfileRequestContext,String>recipientLookupStrategyStrategy used to locate the encryption recipient.private Function<ProfileRequestContext,String>selfRecipientLookupStrategyStrategy used to obtain the self recipient value.
-
Constructor Summary
Constructors Constructor Description AbstractEncryptAction()Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected booleandoPreExecute(ProfileRequestContext profileRequestContext)protected abstract EncryptionParametersgetApplicableParameters(EncryptionContext ctx)Return the right set of parameters for the operation to be performed, or none if no encryption should occur.EncryptergetEncrypter()Get the encrypter.voidsetEncryptionContextLookupStrategy(Function<ProfileRequestContext,EncryptionContext> strategy)Set the strategy used to locate theEncryptionContextassociated with a givenProfileRequestContext.voidsetEncryptToSelf(Predicate<ProfileRequestContext> predicate)Set the predicate used to determine whether to perform encrypt-to-self.voidsetEncryptToSelfParametersStrategy(Function<Pair<ProfileRequestContext,EncryptionParameters>,List<EncryptionParameters>> strategy)Set the strategy used to resolve the encrypt-to-self parameters.voidsetKeyPlacementLookupStrategy(Function<ProfileRequestContext,Encrypter.KeyPlacement> strategy)Set the strategy used to determine the encrypted key placement strategy.voidsetRecipientLookupStrategy(Function<ProfileRequestContext,String> strategy)Set the strategy used to locate the encryption recipient.voidsetSelfRecipientLookupStrategy(Function<ProfileRequestContext,String> strategy)Set the strategy used to locate the self identity value to use.-
Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationCondition
-
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doExecute, doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, setHttpServletRequest, setHttpServletRequestSupplier, setHttpServletResponse, setHttpServletResponseSupplier
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
encryptionCtxLookupStrategy
@Nonnull private Function<ProfileRequestContext,EncryptionContext> encryptionCtxLookupStrategy
Strategy used to locate theEncryptionContext.
-
recipientLookupStrategy
@Nullable private Function<ProfileRequestContext,String> recipientLookupStrategy
Strategy used to locate the encryption recipient.
-
keyPlacementLookupStrategy
@Nonnull private Function<ProfileRequestContext,Encrypter.KeyPlacement> keyPlacementLookupStrategy
Strategy used to determine encrypted key placement.
-
encryptToSelf
@Nonnull private Predicate<ProfileRequestContext> encryptToSelf
Predicate used to determine whether to perform encrypt-to-self.
-
encryptToSelfParametersStrategy
@Nullable private Function<Pair<ProfileRequestContext,EncryptionParameters>,List<EncryptionParameters>> encryptToSelfParametersStrategy
Strategy used to resolve the encrypt-to-self parameters.
-
selfRecipientLookupStrategy
@Nullable private Function<ProfileRequestContext,String> selfRecipientLookupStrategy
Strategy used to obtain the self recipient value.
-
encrypter
@Nullable private Encrypter encrypter
The encryption object.
-
-
Method Detail
-
setEncryptionContextLookupStrategy
public void setEncryptionContextLookupStrategy(@Nonnull Function<ProfileRequestContext,EncryptionContext> strategy)Set the strategy used to locate theEncryptionContextassociated with a givenProfileRequestContext.- Parameters:
strategy- lookup strategy
-
setRecipientLookupStrategy
public void setRecipientLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)Set the strategy used to locate the encryption recipient.- Parameters:
strategy- lookup strategy
-
setKeyPlacementLookupStrategy
public void setKeyPlacementLookupStrategy(@Nonnull Function<ProfileRequestContext,Encrypter.KeyPlacement> strategy)Set the strategy used to determine the encrypted key placement strategy.- Parameters:
strategy- lookup strategy
-
setEncryptToSelf
public void setEncryptToSelf(@Nonnull Predicate<ProfileRequestContext> predicate)Set the predicate used to determine whether to perform encrypt-to-self.- Parameters:
predicate- the encrypt-to-self predicate
-
setEncryptToSelfParametersStrategy
public void setEncryptToSelfParametersStrategy(@Nullable Function<Pair<ProfileRequestContext,EncryptionParameters>,List<EncryptionParameters>> strategy)Set the strategy used to resolve the encrypt-to-self parameters.- Parameters:
strategy- the encrypt-to-self predicate
-
setSelfRecipientLookupStrategy
public void setSelfRecipientLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)Set the strategy used to locate the self identity value to use.- Parameters:
strategy- lookup strategy
-
getEncrypter
@Nullable public Encrypter getEncrypter()
Get the encrypter.- Returns:
- the encrypter
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)- Overrides:
doPreExecutein classAbstractConditionalProfileAction
-
getApplicableParameters
@Nullable protected abstract EncryptionParameters getApplicableParameters(@Nullable EncryptionContext ctx)
Return the right set of parameters for the operation to be performed, or none if no encryption should occur.- Parameters:
ctx- possibly null input context to pull parameters from- Returns:
- the right parameter set, or null for none
-
-