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

# Class EncryptAttributes

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

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

public class EncryptAttributes extends AbstractEncryptAction
Action that encrypts all attributes in a `Response` message obtained from a lookup strategy, by default the outbound message context.

Event:
  `EventIds.PROCEED_EVENT_ID`, `EventIds.UNABLE_TO_ENCRYPT`
Postcondition:
  All SAML attributes in any given statement in the response have been replaced with encrypted versions, or no changes are made to that statement. It's possible for some statements to be modified but others not if an error occurs.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private Response`
`response`
The message to operate on.
`private Function<ProfileRequestContext,StatusResponseType>`
`responseLookupStrategy`
Strategy used to locate the `StatusResponseType` to operate on.

## Constructor Summary

Constructors
Constructor
Description
`EncryptAttributes()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doExecute(ProfileRequestContext profileRequestContext)`
Performs this action.
`protected boolean`
`doPreExecute(ProfileRequestContext profileRequestContext)`
Called prior to execution, actions may override this method to perform pre-processing for a request.
`protected EncryptionParameters`
`getApplicableParameters(EncryptionContext ctx)`
Return the right set of parameters for the operation to be performed, or none if no encryption should occur.
`void`
`setResponseLookupStrategy(Function<ProfileRequestContext,StatusResponseType> strategy)`
Set the strategy used to locate the `Response` to operate on.

### Methods inherited from class org.opensaml.saml.saml2.profile.impl.AbstractEncryptAction

`getEncrypter, setEncryptionContextLookupStrategy, setEncryptToSelf, setEncryptToSelfParametersStrategy, setKeyPlacementLookupStrategy, setRecipientLookupStrategy, setSelfRecipientLookupStrategy`

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

`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.

### responseLookupStrategy

@Nonnull private Function<ProfileRequestContext,StatusResponseType> responseLookupStrategy
Strategy used to locate the `StatusResponseType` to operate on.

### response

@NonnullBeforeExec private Response response
The message to operate on.

## Constructor Details

### EncryptAttributes

public EncryptAttributes()
Constructor.

## Method Details

### setResponseLookupStrategy

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

Parameters:
  `strategy` - strategy used to locate the `Response` to operate on

### getApplicableParameters

@Nullable protected EncryptionParameters getApplicableParameters(@Nullable EncryptionContext ctx)
Return the right set of parameters for the operation to be performed, or none if no encryption should occur.

Specified by:
  `getApplicableParameters` in class `AbstractEncryptAction`
Parameters:
  `ctx` - possibly null input context to pull parameters from
Returns:
  the right parameter set, or null for none

### doPreExecute

protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
Called prior to execution, actions may override this method to perform pre-processing for a request.

If false is returned, execution will not proceed, and the action should attach an `EventContext` to the context tree to signal how to continue with overall workflow processing.

If returning successfully, the last step should be to return the result of the superclass version of this method.

Overrides:
  `doPreExecute` in class `AbstractEncryptAction`
Parameters:
  `profileRequestContext` - the current IdP profile request context
Returns:
  true iff execution should proceed

### 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