#include <fstream>
#include <sstream>
-#include <log4cpp/Category.hh>
+#include <xmltooling/logging.h>
#include <xmltooling/io/HTTPResponse.h>
#include <xmltooling/util/NDC.h>
+#include <xmltooling/util/PathResolver.h>
#include <xmltooling/util/TemplateEngine.h>
#include <xmltooling/util/URLEncoder.h>
using namespace opensaml::saml2md;
using namespace opensaml;
using namespace xmlsignature;
+using namespace xmltooling::logging;
using namespace xmltooling;
-using namespace log4cpp;
using namespace std;
namespace opensaml {
class SAML_DLLLOCAL SAML2ArtifactEncoder : public MessageEncoder
{
public:
- SAML2ArtifactEncoder(const DOMElement* e);
+ SAML2ArtifactEncoder(const DOMElement* e, const XMLCh* ns);
virtual ~SAML2ArtifactEncoder() {}
long encode(
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);
}
};
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) {
- const XMLCh* flag = e->getAttribute(postArtifact);
+ const XMLCh* flag = e->getAttributeNS(ns, postArtifact);
m_post = (flag && (*flag==chLatin_t || *flag==chDigit_1));
if (m_post) {
- auto_ptr_char t(e->getAttribute(_template));
- if (t.get() && *t.get())
+ auto_ptr_char t(e->getAttributeNS(ns, _template));
+ if (t.get() && *t.get()) {
m_template = t.get();
+ XMLToolingConfig::getConfig().getPathResolver()->resolve(m_template, PathResolver::XMLTOOLING_CFG_FILE);
+ }
}
}
}
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");
stringstream s;
engine->run(infile, s, params);
httpResponse->setContentType("text/html");
+ httpResponse->setResponseHeader("Expires", "01-Jan-1997 12:00:00 GMT");
+ httpResponse->setResponseHeader("Cache-Control", "no-cache, no-store, must-revalidate, private");
+ httpResponse->setResponseHeader("Pragma", "no-cache");
return httpResponse->sendResponse(s);
}
}