opensaml-3.0.1

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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. More...
virtual bool | isUserAgentPresent () const
| Indicates whether a web browser or similar user agent delivered the message. More...
void | setArtifactResolver (const ArtifactResolver *artifactResolver)
| Provides an ArtifactResolver implementation for the MessageDecoder to use. More...
virtual xmltooling::XMLObject * | decode (std::string &relayState, const xmltooling::GenericRequest &genericRequest, SecurityPolicy &policy) const =0
| Decodes a transport request into a SAML protocol message, and evaluates it against a supplied SecurityPolicy. More...

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

## Protected Attributes
const ArtifactResolver * | m_artifactResolver
| Pointer to an ArtifactResolver implementation.

## Detailed Description

Interface to SAML protocol binding message decoders.

## Member Function Documentation

## ◆ decode()

virtual xmltooling::XMLObject * opensaml::MessageDecoder::decode | ( | std::string & | relayState,
|  | const xmltooling::GenericRequest & | genericRequest,
|  | SecurityPolicy & | policy
| ) |  | const
| pure 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
  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