fc681eb0c384aee54ba905127b79428d1f350ff5
[shibboleth/cpp-opensaml.git] / saml / saml2 / binding / SAML2ArtifactDecoder.h
1 /*
2  *  Copyright 2001-2006 Internet2
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /**
18  * @file saml/saml2/binding/SAML2ArtifactDecoder.h
19  * 
20  * SAML 2.0 Artifact binding message decoder
21  */
22
23 #include <saml/binding/MessageDecoder.h>
24
25
26 namespace opensaml {
27     namespace saml2 {
28         class SAML_API Issuer;
29     };
30     
31     namespace saml2p {
32
33         /**
34          * SAML 2.0 Artifact binding message decoder
35          */
36         class SAML_API SAML2ArtifactDecoder : public MessageDecoder
37         {
38         public:
39             SAML2ArtifactDecoder(const DOMElement* e);
40             virtual ~SAML2ArtifactDecoder();
41             
42             xmltooling::XMLObject* decode(
43                 std::string& relayState,
44                 const saml2md::RoleDescriptor*& issuer,
45                 bool& issuerTrusted,
46                 const HTTPRequest& httpRequest,
47                 const saml2md::MetadataProvider* metadataProvider=NULL,
48                 const xmltooling::QName* role=NULL,
49                 const TrustEngine* trustEngine=NULL
50                 ) const;
51
52         protected:
53             bool issuerMatches(const saml2::Issuer* messageIssuer, const XMLCh* expectedIssuer) const;
54         };                
55
56     };
57 };