X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fbinding%2FMessageDecoder.h;h=9f3905df64816105e84651034939d876452e5bdf;hp=d797f83ea961f7a1c0c8d2ff8748a7a4bc9a5ec7;hb=7748ee29f760b74bca03c744deacba466a333c43;hpb=6056cca67278d65c4343928e4ceaebd1d6f04920 diff --git a/saml/binding/MessageDecoder.h b/saml/binding/MessageDecoder.h index d797f83..9f3905d 100644 --- a/saml/binding/MessageDecoder.h +++ b/saml/binding/MessageDecoder.h @@ -23,9 +23,9 @@ #ifndef __saml_decoder_h__ #define __saml_decoder_h__ -#include #include #include +#include namespace opensaml { @@ -54,6 +54,15 @@ namespace opensaml { virtual ~MessageDecoder() {} /** + * Indicates whether a web browser or similar user agent delivered the message. + * + * @return true iff the message was delivered by a user agent + */ + virtual bool isUserAgentPresent() const { + return true; + } + + /** * Interface to caller-supplied artifact resolution mechanism. * * Resolving artifacts requires internally performing a SOAP-based @@ -134,7 +143,7 @@ namespace opensaml { */ virtual xmltooling::XMLObject* decode( std::string& relayState, - const GenericRequest& genericRequest, + const xmltooling::GenericRequest& genericRequest, SecurityPolicy& policy ) const=0; @@ -143,6 +152,21 @@ namespace opensaml { /** Pointer to an ArtifactResolver implementation. */ const ArtifactResolver* m_artifactResolver; + + /** + * Extracts policy-relevant message details. + * + * @param message the incoming message + * @param request the protocol request + * @param protocol the protocol family in use + * @param policy SecurityPolicy to provide various components and track message data + */ + virtual void extractMessageDetails ( + const xmltooling::XMLObject& message, + const xmltooling::GenericRequest& request, + const XMLCh* protocol, + SecurityPolicy& policy + ) const=0; }; /**