projects
/
shibboleth
/
cpp-opensaml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move artifact generation to a per-instance parameter.
[shibboleth/cpp-opensaml.git]
/
saml
/
saml1
/
binding
/
impl
/
SAML1SOAPEncoder.cpp
diff --git
a/saml/saml1/binding/impl/SAML1SOAPEncoder.cpp
b/saml/saml1/binding/impl/SAML1SOAPEncoder.cpp
index
3e1b026
..
e031adf
100644
(file)
--- a/
saml/saml1/binding/impl/SAML1SOAPEncoder.cpp
+++ b/
saml/saml1/binding/impl/SAML1SOAPEncoder.cpp
@@
-22,16
+22,18
@@
#include "internal.h"
#include "exceptions.h"
#include "internal.h"
#include "exceptions.h"
-#include "binding/HTTPResponse.h"
#include "binding/MessageEncoder.h"
#include "binding/MessageEncoder.h"
+#include "signature/ContentReference.h"
#include "saml1/core/Protocols.h"
#include <sstream>
#include <log4cpp/Category.hh>
#include "saml1/core/Protocols.h"
#include <sstream>
#include <log4cpp/Category.hh>
+#include <xmltooling/io/HTTPResponse.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/soap/SOAP.h>
using namespace opensaml::saml1p;
#include <xmltooling/util/NDC.h>
#include <xmltooling/soap/SOAP.h>
using namespace opensaml::saml1p;
+using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmlsignature;
using namespace soap11;
using namespace opensaml;
using namespace xmlsignature;
using namespace soap11;
@@
-51,10
+53,12
@@
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 Credential* credential=NULL,
- const XMLCh* sigAlgorithm=NULL
+ const XMLCh* signatureAlg=NULL,
+ const XMLCh* digestAlg=NULL
) const;
};
) const;
};
@@
-69,10
+73,12
@@
long SAML1SOAPEncoder::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 Credential* credential,
- const XMLCh* sigAlgorithm
+ const XMLCh* signatureAlg,
+ const XMLCh* digestAlg
) const
{
#ifdef _DEBUG
) const
{
#ifdef _DEBUG
@@
-110,8
+116,13
@@
long SAML1SOAPEncoder::encode(
// Build a Signature.
Signature* sig = SignatureBuilder::buildSignature();
response->setSignature(sig);
// Build a Signature.
Signature* sig = SignatureBuilder::buildSignature();
response->setSignature(sig);
- if (sigAlgorithm)
- sig->setSignatureAlgorithm(sigAlgorithm);
+ if (signatureAlg)
+ sig->setSignatureAlgorithm(signatureAlg);
+ if (digestAlg) {
+ opensaml::ContentReference* cr = dynamic_cast<opensaml::ContentReference*>(sig->getContentReference());
+ if (cr)
+ cr->setDigestAlgorithm(digestAlg);
+ }
// Sign response while marshalling.
vector<Signature*> sigs(1,sig);
// Sign response while marshalling.
vector<Signature*> sigs(1,sig);