opensaml-2.5.0
opensaml::MessageDecoder Class Reference

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

#include <saml/binding/MessageDecoder.h>

Inheritance diagram for opensaml::MessageDecoder:
opensaml::saml1p::SAML1MessageDecoder opensaml::saml2p::SAML2MessageDecoder

List of all members.

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 =0
 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 ArtifactResolverm_artifactResolver
 Pointer to an ArtifactResolver implementation.

Detailed Description

Interface to SAML protocol binding message decoders.


Member Function Documentation

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:
relayStatewill be set to RelayState/TARGET value accompanying message
genericRequestreference to interface for accessing transport request to decode
policyreference to policy containing rules, MetadataProvider, TrustEngine, etc.
Returns:
the decoded message, or nullptr if the decoder did not recognize the request content
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:
messagethe incoming message
requestthe protocol request
protocolthe protocol family in use
policySecurityPolicy to provide various components and track message data

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

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.

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
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:
artifactResolveran ArtifactResolver implementation to use

Member Data Documentation

Pointer to an ArtifactResolver implementation.


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