projects
/
shibboleth
/
cpp-opensaml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add linefeeds to log, add logging of additional inbound messages.
[shibboleth/cpp-opensaml.git]
/
saml
/
saml2
/
binding
/
impl
/
SAML2ArtifactEncoder.cpp
diff --git
a/saml/saml2/binding/impl/SAML2ArtifactEncoder.cpp
b/saml/saml2/binding/impl/SAML2ArtifactEncoder.cpp
index
749d83d
..
f0f590c
100644
(file)
--- a/
saml/saml2/binding/impl/SAML2ArtifactEncoder.cpp
+++ b/
saml/saml2/binding/impl/SAML2ArtifactEncoder.cpp
@@
-30,7
+30,7
@@
#include <fstream>
#include <sstream>
#include <fstream>
#include <sstream>
-#include <
log4cpp/Category.h
h>
+#include <
xmltooling/logging.
h>
#include <xmltooling/io/HTTPResponse.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/TemplateEngine.h>
#include <xmltooling/io/HTTPResponse.h>
#include <xmltooling/util/NDC.h>
#include <xmltooling/util/TemplateEngine.h>
@@
-40,8
+40,8
@@
using namespace opensaml::saml2p;
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmlsignature;
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmlsignature;
+using namespace xmltooling::logging;
using namespace xmltooling;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace opensaml {
using namespace std;
namespace opensaml {
@@
-49,7
+49,7
@@
namespace opensaml {
class SAML_DLLLOCAL SAML2ArtifactEncoder : public MessageEncoder
{
public:
class SAML_DLLLOCAL SAML2ArtifactEncoder : public MessageEncoder
{
public:
- SAML2ArtifactEncoder(const DOMElement* e);
+ SAML2ArtifactEncoder(const DOMElement* e
, const XMLCh* ns
);
virtual ~SAML2ArtifactEncoder() {}
long encode(
virtual ~SAML2ArtifactEncoder() {}
long encode(
@@
-58,6
+58,7
@@
namespace opensaml {
const char* destination,
const EntityDescriptor* recipient=NULL,
const char* relayState=NULL,
const char* destination,
const EntityDescriptor* recipient=NULL,
const char* relayState=NULL,
+ const ArtifactGenerator* artifactGenerator=NULL,
const Credential* credential=NULL,
const XMLCh* signatureAlg=NULL,
const XMLCh* digestAlg=NULL
const Credential* credential=NULL,
const XMLCh* signatureAlg=NULL,
const XMLCh* digestAlg=NULL
@@
-68,9
+69,9
@@
namespace opensaml {
string m_template;
};
string m_template;
};
- MessageEncoder* SAML_DLLLOCAL SAML2ArtifactEncoderFactory(const
DOMElement* const & e
)
+ MessageEncoder* SAML_DLLLOCAL SAML2ArtifactEncoderFactory(const
pair<const DOMElement*,const XMLCh*>& p
)
{
{
- return new SAML2ArtifactEncoder(
e
);
+ return new SAML2ArtifactEncoder(
p.first, p.second
);
}
};
}
};
@@
-78,14
+79,14
@@
namespace opensaml {
static const XMLCh postArtifact[] = UNICODE_LITERAL_12(p,o,s,t,A,r,t,i,f,a,c,t);
};
static const XMLCh postArtifact[] = UNICODE_LITERAL_12(p,o,s,t,A,r,t,i,f,a,c,t);
};
-SAML2ArtifactEncoder::SAML2ArtifactEncoder(const DOMElement* e) : m_post(false)
+SAML2ArtifactEncoder::SAML2ArtifactEncoder(const DOMElement* e
, const XMLCh* ns
) : m_post(false)
{
if (e) {
{
if (e) {
- const XMLCh* flag = e->getAttributeNS(
NULL
, postArtifact);
+ const XMLCh* flag = e->getAttributeNS(
ns
, postArtifact);
m_post = (flag && (*flag==chLatin_t || *flag==chDigit_1));
if (m_post) {
m_post = (flag && (*flag==chLatin_t || *flag==chDigit_1));
if (m_post) {
- auto_ptr_char t(e->getAttributeNS(
NULL
, _template));
- if (t.get())
+ auto_ptr_char t(e->getAttributeNS(
ns
, _template));
+ if (t.get()
&& *t.get()
)
m_template = t.get();
}
}
m_template = t.get();
}
}
@@
-97,6
+98,7
@@
long SAML2ArtifactEncoder::encode(
const char* destination,
const EntityDescriptor* recipient,
const char* relayState,
const char* destination,
const EntityDescriptor* recipient,
const char* relayState,
+ const ArtifactGenerator* artifactGenerator,
const Credential* credential,
const XMLCh* signatureAlg,
const XMLCh* digestAlg
const Credential* credential,
const XMLCh* signatureAlg,
const XMLCh* digestAlg
@@
-119,21
+121,22
@@
long SAML2ArtifactEncoder::encode(
StatusResponseType* response = NULL;
RequestAbstractType* request = dynamic_cast<RequestAbstractType*>(xmlObject);
StatusResponseType* response = NULL;
RequestAbstractType* request = dynamic_cast<RequestAbstractType*>(xmlObject);
- if (!request)
+ if (!request)
{
response = dynamic_cast<StatusResponseType*>(xmlObject);
response = dynamic_cast<StatusResponseType*>(xmlObject);
- if (!response)
- throw BindingException("XML content for SAML 2.0 HTTP-Artifact Encoder must be a SAML 2.0 protocol message.");
+ if (!response)
+ throw BindingException("XML content for SAML 2.0 HTTP-Artifact Encoder must be a SAML 2.0 protocol message.");
+ }
ArtifactMap* mapper = SAMLConfig::getConfig().getArtifactMap();
if (!mapper)
throw BindingException("SAML 2.0 HTTP-Artifact Encoder requires ArtifactMap be set in configuration.");
// Obtain a fresh artifact.
ArtifactMap* mapper = SAMLConfig::getConfig().getArtifactMap();
if (!mapper)
throw BindingException("SAML 2.0 HTTP-Artifact Encoder requires ArtifactMap be set in configuration.");
// Obtain a fresh artifact.
- if (!
m_
artifactGenerator)
+ if (!artifactGenerator)
throw BindingException("SAML 2.0 HTTP-Artifact Encoder requires an ArtifactGenerator instance.");
auto_ptr_char recipientID(recipient ? recipient->getEntityID() : NULL);
log.debug("obtaining new artifact for relying party (%s)", recipientID.get() ? recipientID.get() : "unknown");
throw BindingException("SAML 2.0 HTTP-Artifact Encoder requires an ArtifactGenerator instance.");
auto_ptr_char recipientID(recipient ? recipient->getEntityID() : NULL);
log.debug("obtaining new artifact for relying party (%s)", recipientID.get() ? recipientID.get() : "unknown");
- auto_ptr<SAMLArtifact> artifact(
m_
artifactGenerator->generateSAML2Artifact(recipient));
+ auto_ptr<SAMLArtifact> artifact(artifactGenerator->generateSAML2Artifact(recipient));
if (credential) {
// Signature based on native XML signing.
if (credential) {
// Signature based on native XML signing.
@@
-159,6
+162,9
@@
long SAML2ArtifactEncoder::encode(
xmlObject->marshall((DOMDocument*)NULL,&sigs,credential);
}
}
xmlObject->marshall((DOMDocument*)NULL,&sigs,credential);
}
}
+
+ if (log.isDebugEnabled())
+ log.debugStream() << "marshalled message:" << logging::eol << *xmlObject << logging::eol;
// Store the message. Last step in storage will be to delete the XML.
log.debug("storing artifact and content in map");
// Store the message. Last step in storage will be to delete the XML.
log.debug("storing artifact and content in map");