First SOAP encoder.
[shibboleth/cpp-opensaml.git] / saml / saml2 / binding / SAML2POSTEncoder.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/SAML2POSTEncoder.h
19  * 
20  * SAML 2.0 HTTP-POST (and -SimpleSign) binding message encoder
21  */
22
23 #include <saml/binding/MessageEncoder.h>
24
25
26 namespace opensaml {
27     namespace saml2p {
28
29         /**
30          * SAML 2.0 HTTP-POST (and -SimpleSign) binding message encoder
31          */
32         class SAML_API SAML2POSTEncoder : public MessageEncoder
33         {
34         public:
35             SAML2POSTEncoder(const DOMElement* e, bool simple=false);
36             virtual ~SAML2POSTEncoder() {}
37             
38             long encode(
39                 GenericResponse& genericResponse,
40                 xmltooling::XMLObject* xmlObject,
41                 const char* destination,
42                 const char* recipientID=NULL,
43                 const char* relayState=NULL,
44                 const xmlsignature::CredentialResolver* credResolver=NULL,
45                 const XMLCh* sigAlgorithm=NULL
46                 ) const;
47
48         protected:        
49             /** Pathname of HTML template for transmission of message via POST. */
50             std::string m_template;
51             
52             /** Flag controls signing behavior (XML vs. "simple") */
53             bool m_simple;
54         };
55
56     };
57 };