Package org.opensaml.saml.common.profile.impl

# Class AddInResponseToToResponse

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

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

public class AddInResponseToToResponse extends AbstractConditionalProfileAction
Action that adds the `InResponseTo` attribute to a response message if a SAML message ID is set on the inbound message context.

Supports all of the abstract types in SAML that carry this attribute.

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

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`AddInResponseToToResponse.DefaultRequestIdLookupStrategy`
Default lookup of request ID from inbound message context, suppressing lookup for bindings known to be supplying artificial IDs.

## Field Summary

Fields
Modifier and Type
Field
Description
`private final org.slf4j.Logger`
`log`
Class logger.
`private String`
`requestId`
Request ID to populate from.
`private Function<ProfileRequestContext,String>`
`requestIdLookupStrategy`
Strategy used to locate request ID to correlate.
`private SAMLObject`
`response`
Message to modify.
`private Function<ProfileRequestContext,SAMLObject>`
`responseLookupStrategy`
Strategy used to locate the message to operate on.

## Constructor Summary

Constructors
Constructor
Description
`AddInResponseToToResponse()`
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.
`void`
`setRequestIdLookupStrategy(Function<ProfileRequestContext,String> strategy)`
Set the strategy used to locate the request ID.
`void`
`setResponseLookupStrategy(Function<ProfileRequestContext,SAMLObject> strategy)`
Set the strategy used to locate the message to operate on.

### 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,SAMLObject> responseLookupStrategy
Strategy used to locate the message to operate on.

### requestIdLookupStrategy

@Nonnull private Function<ProfileRequestContext,String> requestIdLookupStrategy
Strategy used to locate request ID to correlate.

### response

@NonnullBeforeExec private SAMLObject response
Message to modify.

### requestId

@NonnullBeforeExec private String requestId
Request ID to populate from.

## Constructor Details

### AddInResponseToToResponse

public AddInResponseToToResponse()
Constructor.

## Method Details

### setResponseLookupStrategy

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

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

### setRequestIdLookupStrategy

public void setRequestIdLookupStrategy(@Nonnull Function<ProfileRequestContext,String> strategy)
Set the strategy used to locate the request ID.

Parameters:
  `strategy` - lookup strategy

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