opensaml::MessageDecoder Class Referenceabstract

Interface to SAML protocol binding message decoders. More...

`#include <saml/binding/MessageDecoder.h>`

Inheritance diagram for opensaml::MessageDecoder:
[legend]
Collaboration diagram for opensaml::MessageDecoder:
[legend]

## Classes

class | ArtifactResolver
| Interface to caller-supplied artifact resolution mechanism. More...

## Public Member Functions

virtual const XMLCh * | getProtocolFamily () const
| Returns identifier for the protocol family associated with the decoder.
virtual bool | isUserAgentPresent () const
| Indicates whether a web browser or similar user agent delivered the message.
void | setArtifactResolver (const ArtifactResolver *artifactResolver)
| Provides an ArtifactResolver implementation for the MessageDecoder to use.
virtual xmltooling::XMLObject * | decode (std::string &relayState, const xmltooling::GenericRequest &genericRequest, SecurityPolicy &policy) const
| @Deprecated
virtual xmltooling::XMLObject * | decode (std::string &relayState, const xmltooling::GenericRequest &genericRequest, xmltooling::GenericResponse *genericResponse, SecurityPolicy &policy) const
| Decodes a transport request into a SAML protocol message, and evaluates it against a supplied SecurityPolicy.

## Protected Member Functions

virtual void | extractMessageDetails (const xmltooling::XMLObject &message, const xmltooling::GenericRequest &request, const XMLCh *protocol, SecurityPolicy &policy) const =0
| Extracts policy-relevant message details.

## Protected Attributes

const ArtifactResolver * | m_artifactResolver
| Pointer to an ArtifactResolver implementation.

## Detailed Description

Interface to SAML protocol binding message decoders.

## Member Function Documentation

## decode() [1/2]

virtual xmltooling::XMLObject * opensaml::MessageDecoder::decode | ( | std::string & | relayState,
|  | const xmltooling::GenericRequest & | genericRequest,
|  | SecurityPolicy & | policy ) const

virtual

@Deprecated

The future version is the variant below that also takes a response object.

Parameters

  relayState | will be set to RelayState/TARGET value accompanying message
  genericRequest | reference to interface for accessing transport request to decode
  policy | reference to policy containing rules, MetadataProvider, TrustEngine, etc.

Returns
  the decoded message, or nullptr if the decoder did not recognize the request content

## decode() [2/2]

virtual xmltooling::XMLObject * opensaml::MessageDecoder::decode | ( | std::string & | relayState,
|  | const xmltooling::GenericRequest & | genericRequest,
|  | xmltooling::GenericResponse * | genericResponse,
|  | SecurityPolicy & | policy ) const

virtual

Decodes a transport request into a SAML protocol message, and evaluates it against a supplied SecurityPolicy.

If the transport request does not contain the information necessary to decode the request, nullptr will be returned. Errors during the decoding process will be raised as exceptions.

Artifact-based bindings require an ArtifactResolver be set to turn an artifact into the corresponding message.

Parameters

  relayState | will be set to RelayState/TARGET value accompanying message
  genericRequest | reference to interface for accessing transport request to decode
  genericResponse | optional interface for accessing transport response
  policy | reference to policy containing rules, MetadataProvider, TrustEngine, etc.

Returns
  the decoded message, or nullptr if the decoder did not recognize the request content

## extractMessageDetails()

virtual void opensaml::MessageDecoder::extractMessageDetails | ( | const xmltooling::XMLObject & | message,
|  | const xmltooling::GenericRequest & | request,
|  | const XMLCh * | protocol,
|  | SecurityPolicy & | policy ) const

protected pure virtual

Extracts policy-relevant message details.

Parameters

  message | the incoming message
  request | the protocol request
  protocol | the protocol family in use
  policy | SecurityPolicy to provide various components and track message data

Implemented in opensaml::saml1p::SAML1MessageDecoder, and opensaml::saml2p::SAML2MessageDecoder.

## getProtocolFamily()

virtual const XMLCh * opensaml::MessageDecoder::getProtocolFamily | ( |  | ) | const

virtual

Returns identifier for the protocol family associated with the decoder.

Returns
  a protocol family identifier, or nullptr

Reimplemented in opensaml::saml1p::SAML1MessageDecoder, and opensaml::saml2p::SAML2MessageDecoder.

## isUserAgentPresent()

virtual bool opensaml::MessageDecoder::isUserAgentPresent | ( |  | ) | const

virtual

Indicates whether a web browser or similar user agent delivered the message.

Returns
  true iff the message was delivered by a user agent

## setArtifactResolver()

void opensaml::MessageDecoder::setArtifactResolver | ( | const ArtifactResolver * | artifactResolver | ) |

Provides an ArtifactResolver implementation for the MessageDecoder to use.

The implementation's lifetime must be longer than the lifetime of this object. This method must be externally synchronized.

Parameters

  artifactResolver | an ArtifactResolver implementation to use

The documentation for this class was generated from the following file:

- saml/binding/MessageDecoder.h