Package org.opensaml.soap.wsaddressing.messaging.impl

# Class AddActionHandler

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.handler.AbstractMessageHandler
org.opensaml.soap.messaging.AbstractHeaderGeneratingMessageHandler
org.opensaml.soap.wsaddressing.messaging.impl.AddActionHandler

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

public class AddActionHandler extends AbstractHeaderGeneratingMessageHandler
Handler implementation that adds a wsa:Action header to the outbound SOAP envelope.

If a `Fault` is registered in the context, the value from `WSAddressingContext.getFaultActionURI()` will be used, if present. If not, then the locally-configured value from `getFaultActionURI()` will be used. If neither is present, then a value will be selected based on the `Fault.getCode()` via `selectActionURIForFault(Fault)`.

The value from `WSAddressingContext.getActionURI()` will be used, if present. If not, then the locally-configured value from `getActionURI()` will be used. If neither is present, no header will be added.

## Field Summary

Fields
Modifier and Type
Field
Description
`private String`
`actionURI`
The configured Action URI value.
`private String`
`faultActionURI`
The configured Fault Action URI value.
`private org.slf4j.Logger`
`log`
Logger.
`private String`
`sendURI`
The actual calculated Action URI to send.

## Constructor Summary

Constructors
Constructor
Description
`AddActionHandler()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doInvoke(MessageContext messageContext)`
Performs the handler logic.
`protected boolean`
`doPreInvoke(MessageContext messageContext)`
Called prior to execution, handlers may override this method to perform pre-processing for a request.
`String`
`getActionURI()`
Get the Action URI.
`String`
`getFaultActionURI()`
Get the Fault Action URI.
`protected String`
`selectActionURIForFault(Fault fault)`
Select the Action URI value to return for the given `Fault`.
`void`
`setActionURI(String uri)`
Set the expected Action URI value.
`void`
`setFaultActionURI(String uri)`
Set the Fault Action URI value.

### Methods inherited from class org.opensaml.soap.messaging.AbstractHeaderGeneratingMessageHandler

`decorateGeneratedHeader, getEffectiveTargetNode, isEffectiveMustUnderstand, setMustUnderstand, setMustUnderstandStrategy, setTargetNode, setTargetNodeStrategy`

### Methods inherited from class org.opensaml.messaging.handler.AbstractMessageHandler

`doPostInvoke, doPostInvoke, getActivationCondition, getLogPrefix, invoke, isPreInvokeCalled, setActivationCondition`

### 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 org.slf4j.Logger log
Logger.

### actionURI

@Nullable private String actionURI
The configured Action URI value.

### faultActionURI

@Nullable private String faultActionURI
The configured Fault Action URI value.

### sendURI

@Nullable private String sendURI
The actual calculated Action URI to send.

## Constructor Details

### AddActionHandler

public AddActionHandler()

## Method Details

### getActionURI

@Nullable public String getActionURI()
Get the Action URI.

Returns:
  the URI, or null

### setActionURI

public void setActionURI(@Nullable String uri)
Set the expected Action URI value.

Parameters:
  `uri` - the new URI value

### getFaultActionURI

@Nullable public String getFaultActionURI()
Get the Fault Action URI.

Returns:
  the URI, or null

### setFaultActionURI

public void setFaultActionURI(@Nullable String uri)
Set the Fault Action URI value.

Parameters:
  `uri` - the new URI value

### doPreInvoke

protected boolean doPreInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
Called prior to execution, handlers may override this method to perform pre-processing for a request.

The default impl applies the `Predicate` set via the `AbstractMessageHandler.setActivationCondition(Predicate)`.

If false is returned, execution will not proceed.

Subclasses which override this method should generally invoke the super version of this method first, so that the activation condition will be applied up front, and immediately return false if the super version returns false. This avoids unnecessary execution of the remaining pre-invocation code if the handler ultimately will not execute.

Overrides:
  `doPreInvoke` in class `AbstractHeaderGeneratingMessageHandler`
Parameters:
  `messageContext` - the message context on which to invoke the handler
Returns:
  true iff execution should proceed
Throws:
  `MessageHandlerException` - if there is a problem executing the handler pre-routine

### selectActionURIForFault

@Nonnull protected String selectActionURIForFault(@Nonnull Fault fault)
Select the Action URI value to return for the given `Fault`.

Parameters:
  `fault` - the fault
Returns:
  the selected Action URI

### doInvoke

protected void doInvoke(@Nonnull MessageContext messageContext) throws MessageHandlerException
Performs the handler logic.

Specified by:
  `doInvoke` in class `AbstractMessageHandler`
Parameters:
  `messageContext` - the message context on which to invoke the handler
Throws:
  `MessageHandlerException` - if there is an error invoking the handler on the message context