Package org.opensaml.saml.saml2.profile.impl

# Class PopulateECPContext

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
org.opensaml.saml.saml2.profile.impl.PopulateECPContext

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `ProfileAction`

public class PopulateECPContext extends AbstractConditionalProfileAction
Action to create and populate an `ECPContext` based on the request and, when encryption is in use, generating a session key.

Event:
  `EventIds.PROCEED_EVENT_ID`, `EventIds.INVALID_MSG_CTX`, `EventIds.INVALID_SEC_CFG`

## Field Summary

Fields
Modifier and Type
Field
Description
`private Function<ProfileRequestContext,ECPContext>`
`ecpContextCreationStrategy`
Strategy used to locate the `ECPContext` to populate.
`private Function<ProfileRequestContext,EncryptionContext>`
`encryptionContextLookupStrategy`
Strategy used to locate the `EncryptionContext`.
`private final org.slf4j.Logger`
`log`
Class logger.
`private SecureRandom`
`randomGenerator`
Random number generator.
`private boolean`
`requireEncryption`
Only generate a key if encryption is expected.

## Constructor Summary

Constructors
Constructor
Description
`PopulateECPContext()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
Performs this action.
`void`
`setECPContextCreationStrategy(Function<ProfileRequestContext,ECPContext> strategy)`
Set the strategy used to locate the `ECPContext` to operate on.
`void`
`setEncryptionContextLookupStrategy(Function<ProfileRequestContext,EncryptionContext> strategy)`
Set the strategy used to locate the `EncryptionContext`.
`void`
`setRandomGenerator(SecureRandom generator)`
Set the source of randomness to use, or none to bypass key generation.
`void`
`setRequireEncryption(boolean flag)`
Set whether to require assertion encryption or skip session key generation.

### Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction

`doPreExecute, getActivationCondition, setActivationCondition`

### Methods inherited from class org.opensaml.profile.action.AbstractProfileAction

`doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplier`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.shared.component.InitializableComponent

`initialize, isInitialized`

## Field Details

### log

@Nonnull private final org.slf4j.Logger log
Class logger.

### ecpContextCreationStrategy

@Nonnull private Function<ProfileRequestContext,ECPContext> ecpContextCreationStrategy
Strategy used to locate the `ECPContext` to populate.

### encryptionContextLookupStrategy

@Nonnull private Function<ProfileRequestContext,EncryptionContext> encryptionContextLookupStrategy
Strategy used to locate the `EncryptionContext`.

### randomGenerator

@Nullable private SecureRandom randomGenerator
Random number generator.

### requireEncryption

private boolean requireEncryption
Only generate a key if encryption is expected.

## Constructor Details

### PopulateECPContext

public PopulateECPContext() throws NoSuchAlgorithmException
Constructor.

Throws:
  `NoSuchAlgorithmException` - if unable to construct default random generator

## Method Details

### setECPContextCreationStrategy

public void setECPContextCreationStrategy(@Nonnull Function<ProfileRequestContext,ECPContext> strategy)
Set the strategy used to locate the `ECPContext` to operate on.

Parameters:
  `strategy` - lookup strategy

### setEncryptionContextLookupStrategy

public void setEncryptionContextLookupStrategy(@Nonnull Function<ProfileRequestContext,EncryptionContext> strategy)
Set the strategy used to locate the `EncryptionContext`.

Parameters:
  `strategy` - lookup strategy

### setRandomGenerator

public void setRandomGenerator(@Nullable SecureRandom generator)
Set the source of randomness to use, or none to bypass key generation.

Parameters:
  `generator` - random number generator

### setRequireEncryption

public void setRequireEncryption(boolean flag)
Set whether to require assertion encryption or skip session key generation.

Parameters:
  `flag` - flag to set

### doExecute

protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
Performs this action. Actions must override this method to perform their work.

Overrides:
  `doExecute` in class `AbstractProfileAction`
Parameters:
  `profileRequestContext` - the current IdP profile request context