projects
/
shibboleth
/
cpp-opensaml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Parameterize config namespace for message plugins.
[shibboleth/cpp-opensaml.git]
/
saml
/
saml2
/
binding
/
impl
/
SAML2RedirectEncoder.cpp
diff --git
a/saml/saml2/binding/impl/SAML2RedirectEncoder.cpp
b/saml/saml2/binding/impl/SAML2RedirectEncoder.cpp
index
6360fca
..
937f8ea
100644
(file)
--- a/
saml/saml2/binding/impl/SAML2RedirectEncoder.cpp
+++ b/
saml/saml2/binding/impl/SAML2RedirectEncoder.cpp
@@
-22,7
+22,6
@@
#include "internal.h"
#include "exceptions.h"
#include "internal.h"
#include "exceptions.h"
-#include "binding/HTTPResponse.h"
#include "binding/MessageEncoder.h"
#include "saml2/binding/SAML2Redirect.h"
#include "saml2/core/Protocols.h"
#include "binding/MessageEncoder.h"
#include "saml2/binding/SAML2Redirect.h"
#include "saml2/core/Protocols.h"
@@
-31,10
+30,12
@@
#include <sstream>
#include <log4cpp/Category.hh>
#include <xercesc/util/Base64.hpp>
#include <sstream>
#include <log4cpp/Category.hh>
#include <xercesc/util/Base64.hpp>
+#include <xmltooling/io/HTTPResponse.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/URLEncoder.h>
using namespace opensaml::saml2p;
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/URLEncoder.h>
using namespace opensaml::saml2p;
+using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmlsignature;
using namespace xmltooling;
using namespace opensaml;
using namespace xmlsignature;
using namespace xmltooling;
@@
-46,7
+47,7
@@
namespace opensaml {
class SAML_DLLLOCAL SAML2RedirectEncoder : public MessageEncoder
{
public:
class SAML_DLLLOCAL SAML2RedirectEncoder : public MessageEncoder
{
public:
- SAML2RedirectEncoder(
const DOMElement* e
) {}
+ SAML2RedirectEncoder() {}
virtual ~SAML2RedirectEncoder() {}
bool isCompact() const {
virtual ~SAML2RedirectEncoder() {}
bool isCompact() const {
@@
-57,17
+58,18
@@
namespace opensaml {
GenericResponse& genericResponse,
XMLObject* xmlObject,
const char* destination,
GenericResponse& genericResponse,
XMLObject* xmlObject,
const char* destination,
- const
char* recipientID
=NULL,
+ const
EntityDescriptor* recipient
=NULL,
const char* relayState=NULL,
const char* relayState=NULL,
+ const ArtifactGenerator* artifactGenerator=NULL,
const Credential* credential=NULL,
const XMLCh* signatureAlg=NULL,
const XMLCh* digestAlg=NULL
) const;
};
const Credential* credential=NULL,
const XMLCh* signatureAlg=NULL,
const XMLCh* digestAlg=NULL
) const;
};
- MessageEncoder* SAML_DLLLOCAL SAML2RedirectEncoderFactory(const
DOMElement* const & e
)
+ MessageEncoder* SAML_DLLLOCAL SAML2RedirectEncoderFactory(const
pair<const DOMElement*,const XMLCh*>& p
)
{
{
- return new SAML2RedirectEncoder(
e
);
+ return new SAML2RedirectEncoder();
}
};
};
}
};
};
@@
-76,8
+78,9
@@
long SAML2RedirectEncoder::encode(
GenericResponse& genericResponse,
XMLObject* xmlObject,
const char* destination,
GenericResponse& genericResponse,
XMLObject* xmlObject,
const char* destination,
- const
char* recipientID
,
+ const
EntityDescriptor* recipient
,
const char* relayState,
const char* relayState,
+ const ArtifactGenerator* artifactGenerator,
const Credential* credential,
const XMLCh* signatureAlg,
const XMLCh* digestAlg
const Credential* credential,
const XMLCh* signatureAlg,
const XMLCh* digestAlg
@@
-133,6
+136,8
@@
long SAML2RedirectEncoder::encode(
xmlbuf = xmlbuf + "&RelayState=" + escaper->encode(relayState);
if (credential) {
xmlbuf = xmlbuf + "&RelayState=" + escaper->encode(relayState);
if (credential) {
+ log.debug("signing the message");
+
// Sign the query string after adding the algorithm.
if (!signatureAlg)
signatureAlg = DSIGConstants::s_unicodeStrURIRSA_SHA1;
// Sign the query string after adding the algorithm.
if (!signatureAlg)
signatureAlg = DSIGConstants::s_unicodeStrURIRSA_SHA1;
@@
-147,7
+152,7
@@
long SAML2RedirectEncoder::encode(
// Generate redirect.
log.debug("message encoded, sending redirect to client");
// Generate redirect.
log.debug("message encoded, sending redirect to client");
- xmlbuf.insert(
0,
1,(strchr(destination,'?') ? '&' : '?'));
+ xmlbuf.insert(
(string::size_type)0,(string::size_type)
1,(strchr(destination,'?') ? '&' : '?'));
xmlbuf.insert(0,destination);
long ret = httpResponse->sendRedirect(xmlbuf.c_str());
xmlbuf.insert(0,destination);
long ret = httpResponse->sendRedirect(xmlbuf.c_str());