Package org.opensaml.saml.saml1.binding.encoding.impl

# Class HTTPPostEncoder

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.messaging.encoder.AbstractMessageEncoder
org.opensaml.messaging.encoder.servlet.AbstractHttpServletResponseMessageEncoder
org.opensaml.messaging.encoder.servlet.BaseHttpServletResponseXMLMessageEncoder
org.opensaml.saml.common.binding.impl.BaseSAMLHttpServletResponseEncoder
org.opensaml.saml.saml1.binding.encoding.impl.BaseSAML1MessageEncoder
org.opensaml.saml.saml1.binding.encoding.impl.HTTPPostEncoder

All Implemented Interfaces:
  `Component`, `DestructableComponent`, `InitializableComponent`, `UnmodifiableComponent`, `HTMLMessageEncoder`, `MessageEncoder`, `HttpServletResponseMessageEncoder`, `SAMLMessageEncoder`

public class HTTPPostEncoder extends BaseSAML1MessageEncoder implements HTMLMessageEncoder
SAML 1.X HTTP POST message encoder.

## Field Summary

Fields
Modifier and Type
Field
Description
`private StringDigester`
`cspDigester`
Digester for CSP hashes.
`private IdentifierGenerationStrategy`
`cspNonceGenerator`
Generator for CSP nonces.
`static final String`
`DEFAULT_TEMPLATE_ID`
Default template ID.
`private final org.slf4j.Logger`
`log`
Class logger.
`private org.apache.velocity.app.VelocityEngine`
`velocityEngine`
Velocity engine used to evaluate the template when performing POST encoding.
`private String`
`velocityTemplateId`
ID of the velocity template used when performing POST encoding.

### Fields inherited from class org.opensaml.messaging.encoder.AbstractMessageEncoder

`BASE_PROTOCOL_MESSAGE_LOGGER_CATEGORY`

## Constructor Summary

Constructors
Constructor
Description
`HTTPPostEncoder()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`doEncode()`
Performs the encoding logic.
`protected void`
`doInitialize()`
`String`
`getBindingURI()`
Gets the SAML binding URI supported by this encoder.
`org.apache.velocity.app.VelocityEngine`
`getVelocityEngine()`
Get the VelocityEngine instance.
`String`
`getVelocityTemplateId()`
Get the Velocity template id.
`protected void`
`postEncode(MessageContext messageContext, String endpointURL)`
Base64 and POST encodes the outbound message and writes it to the outbound transport.
`void`
`setCSPDigester(StringDigester digester)`
Set a `StringDigester` to use to generate CSP hashes.
`void`
`setCSPNonceGenerator(IdentifierGenerationStrategy strategy)`
Set a `IdentifierGenerationStrategy` to use to generate CSP nonces.
`void`
`setVelocityEngine(org.apache.velocity.app.VelocityEngine newVelocityEngine)`
Set the VelocityEngine instance.
`void`
`setVelocityTemplateId(String newVelocityTemplateId)`
Set the Velocity template id.

### Methods inherited from class org.opensaml.saml.saml1.binding.encoding.impl.BaseSAML1MessageEncoder

`getEndpointURL`

### Methods inherited from class org.opensaml.messaging.encoder.servlet.BaseHttpServletResponseXMLMessageEncoder

`encode, marshallMessage, serializeMessageForLogging`

### Methods inherited from class org.opensaml.messaging.encoder.servlet.AbstractHttpServletResponseMessageEncoder

`getHttpServletResponse, getHttpServletResponseSupplier, setHttpServletResponseSupplier`

### Methods inherited from class org.opensaml.messaging.encoder.AbstractMessageEncoder

`getMessageContext, getMessageToLog, getProtocolMessageLogger, getProtocolMessageLoggerSubCategory, logEncodedMessage, prepareContext, setMessageContext, setProtocolMessageLoggerSubCategory`

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

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, 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.DestructableComponent

`destroy, isDestroyed`

### Methods inherited from interface net.shibboleth.shared.component.InitializableComponent

`initialize, isInitialized`

### Methods inherited from interface org.opensaml.messaging.encoder.MessageEncoder

`encode, prepareContext, setMessageContext`

## Field Details

### DEFAULT_TEMPLATE_ID

@Nonnull @NotEmpty public static final String DEFAULT_TEMPLATE_ID
Default template ID.

See Also:
  - Constant Field Values

### log

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

### velocityEngine

@NonnullAfterInit private org.apache.velocity.app.VelocityEngine velocityEngine
Velocity engine used to evaluate the template when performing POST encoding.

### velocityTemplateId

@NonnullAfterInit private String velocityTemplateId
ID of the velocity template used when performing POST encoding.

### cspDigester

@Nullable private StringDigester cspDigester
Digester for CSP hashes.

### cspNonceGenerator

@Nullable private IdentifierGenerationStrategy cspNonceGenerator
Generator for CSP nonces.

## Constructor Details

### HTTPPostEncoder

public HTTPPostEncoder()
Constructor.

## Method Details

### getBindingURI

@Nonnull public String getBindingURI()
Gets the SAML binding URI supported by this encoder.

Specified by:
  `getBindingURI` in interface `SAMLMessageEncoder`
Returns:
  SAML binding URI supported by this encoder

### getVelocityEngine

@NonnullAfterInit public org.apache.velocity.app.VelocityEngine getVelocityEngine()
Get the VelocityEngine instance.

Returns:
  return the VelocityEngine instance

### setVelocityEngine

public void setVelocityEngine(@Nullable org.apache.velocity.app.VelocityEngine newVelocityEngine)
Set the VelocityEngine instance.

Parameters:
  `newVelocityEngine` - the new VelocityEngine instane

### getVelocityTemplateId

@NonnullAfterInit public String getVelocityTemplateId()
Get the Velocity template id.

Defaults to `DEFAULT_TEMPLATE_ID`.

Returns:
  return the Velocity template id

### setVelocityTemplateId

public void setVelocityTemplateId(@Nullable String newVelocityTemplateId)
Set the Velocity template id.

Defaults to `DEFAULT_TEMPLATE_ID`.

Parameters:
  `newVelocityTemplateId` - the new Velocity template id

### setCSPDigester

public void setCSPDigester(@Nullable StringDigester digester)
Set a `StringDigester` to use to generate CSP hashes.

Specified by:
  `setCSPDigester` in interface `HTMLMessageEncoder`
Parameters:
  `digester` - string digester

### setCSPNonceGenerator

public void setCSPNonceGenerator(@Nullable IdentifierGenerationStrategy strategy)
Set a `IdentifierGenerationStrategy` to use to generate CSP nonces.

Specified by:
  `setCSPNonceGenerator` in interface `HTMLMessageEncoder`
Parameters:
  `strategy` - nonce strategy

### doInitialize

protected void doInitialize() throws ComponentInitializationException

Overrides:
  `doInitialize` in class `AbstractHttpServletResponseMessageEncoder`
Throws:
  `ComponentInitializationException`

### doEncode

protected void doEncode() throws MessageEncodingException
Performs the encoding logic. By the time this is called, this encoder has already been initialized and checked to ensure that it has not been destroyed.

Specified by:
  `doEncode` in class `AbstractMessageEncoder`
Throws:
  `MessageEncodingException` - thrown if there is a problem encoding the message

### postEncode

protected void postEncode(@Nonnull MessageContext messageContext, @Nonnull String endpointURL) throws MessageEncodingException
Base64 and POST encodes the outbound message and writes it to the outbound transport.

Parameters:
  `messageContext` - current message context
  `endpointURL` - endpoint URL to encode message to
Throws:
  `MessageEncodingException` - thrown if there is a problem encoding the message