version 1.32, 2004/01/20 22:46:52
|
version 1.33, 2004/05/07 16:56:23
|
|
|
#include <Pegasus/Common/HTTPMessage.h> | #include <Pegasus/Common/HTTPMessage.h> |
#include <Pegasus/Common/XmlWriter.h> | #include <Pegasus/Common/XmlWriter.h> |
#include <Pegasus/Config/ConfigManager.h> | #include <Pegasus/Config/ConfigManager.h> |
|
#include <Pegasus/Common/Thread.h> |
#include "HTTPAuthenticatorDelegator.h" | #include "HTTPAuthenticatorDelegator.h" |
|
#include <Pegasus/Common/MessageLoader.h> |
| |
#ifdef PEGASUS_KERBEROS_AUTHENTICATION | #ifdef PEGASUS_KERBEROS_AUTHENTICATION |
#include <Pegasus/Common/CIMKerberosSecurityAssociation.h> | #include <Pegasus/Common/CIMKerberosSecurityAssociation.h> |
|
|
| |
httpMessage->parse(startLine, headers, contentLength); | httpMessage->parse(startLine, headers, contentLength); |
| |
|
// l10n start |
|
AcceptLanguages acceptLanguages = AcceptLanguages::EMPTY; |
|
ContentLanguages contentLanguages = ContentLanguages::EMPTY; |
|
try |
|
{ |
|
// Get and validate the Accept-Language header, if set |
|
String acceptLanguageHeader; |
|
if (HTTPMessage::lookupHeader( |
|
headers, |
|
"Accept-Language", |
|
acceptLanguageHeader, |
|
false) == true) |
|
{ |
|
acceptLanguages = AcceptLanguages(acceptLanguageHeader); |
|
httpMessage->acceptLanguagesDecoded = true; |
|
} |
|
|
|
// Get and validate the Content-Language header, if set |
|
String contentLanguageHeader; |
|
if (HTTPMessage::lookupHeader( |
|
headers, |
|
"Content-Language", |
|
contentLanguageHeader, |
|
false) == true) |
|
{ |
|
contentLanguages = ContentLanguages(contentLanguageHeader); |
|
httpMessage->contentLanguagesDecoded = true; |
|
} |
|
} |
|
catch (Exception &e) |
|
{ |
|
Thread::clearLanguages(); // clear any existing languages to force messages to come from the root bundle |
|
MessageLoaderParms msgParms("Pegasus.Server.HTTPAuthenticatorDelegator.REQUEST_NOT_VALID","request-not-valid"); |
|
String msg(MessageLoader::getMessage(msgParms)); |
|
|
|
_sendHttpError(queueId, HTTP_STATUS_BADREQUEST, |
|
msg, |
|
e.getMessage()); |
|
PEG_METHOD_EXIT(); |
|
return; |
|
} |
|
Thread::setLanguages(new AcceptLanguages(acceptLanguages)); |
|
httpMessage->acceptLanguages = acceptLanguages; |
|
httpMessage->contentLanguages = contentLanguages; |
|
// l10n end |
|
|
|
|
// | // |
// Parse the request line: | // Parse the request line: |
// | // |
|
|
} | } |
else | else |
{ | { |
|
MessageLoaderParms msgParms("Pegasus.Server.HTTPAuthenticatorDelegator.AUTHORIZATION_HEADER_ERROR","Authorization header error"); |
|
String msg(MessageLoader::getMessage(msgParms)); |
_sendHttpError(queueId, | _sendHttpError(queueId, |
HTTP_STATUS_BADREQUEST, | HTTP_STATUS_BADREQUEST, |
String::EMPTY, | String::EMPTY, |
"Authorization header error"); |
msg); |
} | } |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
|
|
} | } |
else | else |
{ | { |
|
MessageLoaderParms msgParms("Pegasus.Server.HTTPAuthenticatorDelegator.AUTHORIZATION_HEADER_ERROR","Authorization header error"); |
|
String msg(MessageLoader::getMessage(msgParms)); |
_sendHttpError(queueId, | _sendHttpError(queueId, |
HTTP_STATUS_BADREQUEST, | HTTP_STATUS_BADREQUEST, |
String::EMPTY, | String::EMPTY, |
"Authorization header error"); |
msg); |
} | } |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
|
|
{ | { |
if (httpMessage->message.size() == 0) | if (httpMessage->message.size() == 0) |
{ | { |
|
MessageLoaderParms msgParms("Pegasus.Server.HTTPAuthenticatorDelegator.AUTHORIZATION_HEADER_ERROR","Authorization header error"); |
|
String msg(MessageLoader::getMessage(msgParms)); |
_sendHttpError(queueId, | _sendHttpError(queueId, |
HTTP_STATUS_BADREQUEST, | HTTP_STATUS_BADREQUEST, |
String::EMPTY, | String::EMPTY, |
"Authorization header error"); |
msg); |
} | } |
else | else |
{ | { |
|
|
} | } |
else | else |
{ | { |
|
MessageLoaderParms msgParms("Pegasus.Server.HTTPAuthenticatorDelegator.AUTHORIZATION_HEADER_ERROR","Authorization header error"); |
|
String msg(MessageLoader::getMessage(msgParms)); |
_sendHttpError(queueId, | _sendHttpError(queueId, |
HTTP_STATUS_BADREQUEST, | HTTP_STATUS_BADREQUEST, |
String::EMPTY, | String::EMPTY, |
"Authorization header error"); |
msg); |
} | } |
} | } |
} // M-POST and POST processing | } // M-POST and POST processing |