#include <xmltooling/unicode.h>
#include <xmltooling/XMLToolingConfig.h>
#include <xmltooling/util/NDC.h>
+#include <xmltooling/util/XMLConstants.h>
#include <xmltooling/util/XMLHelper.h>
#include <xercesc/util/XMLUniDefs.hpp>
#include <fstream>
#include <process.h>
+#include <windows.h>
#include <httpfilt.h>
#include <httpext.h>
return TRUE;
}
- LPCSTR schemadir=getenv("SHIBSCHEMAS");
+ LPCSTR schemadir=getenv("SHIBSP_SCHEMAS");
if (!schemadir)
schemadir=SHIBSP_SCHEMAS;
- LPCSTR config=getenv("SHIBCONFIG");
+ LPCSTR config=getenv("SHIBSP_CONFIG");
if (!config)
config=SHIBSP_CONFIG;
g_Config=&SPConfig::getConfig();
g_Config->setFeatures(
SPConfig::Listener |
- SPConfig::Metadata |
+ SPConfig::Caching |
SPConfig::RequestMapping |
SPConfig::InProcess |
SPConfig::Logging
PHTTP_FILTER_CONTEXT m_pfc;
PHTTP_FILTER_PREPROC_HEADERS m_pn;
map<string,string> m_headers;
- vector<XSECCryptoX509*> m_certs;
+ vector<string> m_certs;
int m_port;
string m_scheme,m_hostname,m_uri;
mutable string m_remote_addr,m_content_type,m_method;
hdr += "\r\n";
const char* codestr="200 OK";
switch (status) {
- case SAML_HTTP_STATUS_FORBIDDEN:codestr="403 Forbidden"; break;
- case SAML_HTTP_STATUS_NOTFOUND: codestr="404 Not Found"; break;
- case SAML_HTTP_STATUS_ERROR: codestr="500 Server Error"; break;
+ case XMLTOOLING_HTTP_STATUS_FORBIDDEN:codestr="403 Forbidden"; break;
+ case XMLTOOLING_HTTP_STATUS_NOTFOUND: codestr="404 Not Found"; break;
+ case XMLTOOLING_HTTP_STATUS_ERROR: codestr="500 Server Error"; break;
}
m_pfc->ServerSupportFunction(m_pfc, SF_REQ_SEND_RESPONSE_HEADER, (void*)codestr, (DWORD)hdr.c_str(), 0);
char buf[1024];
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
- const vector<XSECCryptoX509*>& getClientCertificates() const {
+ const vector<string>& getClientCertificates() const {
return m_certs;
}
{
LPEXTENSION_CONTROL_BLOCK m_lpECB;
map<string,string> m_headers;
- vector<XSECCryptoX509*> m_certs;
+ vector<string> m_certs;
mutable string m_body;
mutable bool m_gotBody;
int m_port;
if (m_gotBody)
return m_body.c_str();
if (m_lpECB->cbTotalBytes > 1024*1024) // 1MB?
- throw opensaml::BindingException("Size of POST request body exceeded limit.");
- else if (m_lpECB->cbTotalBytes != m_lpECB->cbAvailable) {
+ throw opensaml::SecurityPolicyException("Size of request body exceeded 1M size limit.");
+ else if (m_lpECB->cbTotalBytes > m_lpECB->cbAvailable) {
m_gotBody=true;
char buf[8192];
DWORD datalen=m_lpECB->cbTotalBytes;
DWORD buflen=8192;
BOOL ret = m_lpECB->ReadClient(m_lpECB->ConnID, buf, &buflen);
if (!ret || !buflen)
- throw IOException("Error reading POST request body from browser.");
+ throw IOException("Error reading request body from browser.");
m_body.append(buf, buflen);
datalen-=buflen;
}
}
- else {
+ else if (m_lpECB->cbAvailable) {
m_gotBody=true;
m_body.assign(reinterpret_cast<char*>(m_lpECB->lpbData),m_lpECB->cbAvailable);
}
hdr += "\r\n";
const char* codestr="200 OK";
switch (status) {
- case SAML_HTTP_STATUS_FORBIDDEN:codestr="403 Forbidden"; break;
- case SAML_HTTP_STATUS_NOTFOUND: codestr="404 Not Found"; break;
- case SAML_HTTP_STATUS_ERROR: codestr="500 Server Error"; break;
+ case XMLTOOLING_HTTP_STATUS_FORBIDDEN:codestr="403 Forbidden"; break;
+ case XMLTOOLING_HTTP_STATUS_NOTFOUND: codestr="404 Not Found"; break;
+ case XMLTOOLING_HTTP_STATUS_ERROR: codestr="500 Server Error"; break;
}
m_lpECB->ServerSupportFunction(m_lpECB->ConnID, HSE_REQ_SEND_RESPONSE_HEADER, (void*)codestr, 0, (LPDWORD)hdr.c_str());
char buf[1024];
return HSE_STATUS_SUCCESS;
}
- const vector<XSECCryptoX509*>& getClientCertificates() const {
+ const vector<string>& getClientCertificates() const {
return m_certs;
}