version 1.9, 2006/10/27 17:47:12
|
version 1.16, 2007/09/12 21:30:58
|
|
|
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/Constants.h> | #include <Pegasus/Common/Constants.h> |
#include <Pegasus/Common/Logger.h> | #include <Pegasus/Common/Logger.h> |
#include <Pegasus/Common/Formatter.h> |
|
#include <Pegasus/Common/CIMPropertyList.h> |
|
#include <Pegasus/Common/InternalException.h> |
|
#include <Pegasus/Common/AuditLogger.h> | #include <Pegasus/Common/AuditLogger.h> |
| |
|
#ifdef PEGASUS_OS_DARWIN |
|
# include <crt_externs.h> |
|
#endif |
|
|
#ifndef PEGASUS_OS_TYPE_WINDOWS | #ifndef PEGASUS_OS_TYPE_WINDOWS |
# include <unistd.h> | # include <unistd.h> |
#endif | #endif |
|
|
| |
#include <stdlib.h> | #include <stdlib.h> |
| |
#ifndef PEGASUS_DISABLE_AUDIT_LOGGER |
#ifdef PEGASUS_ENABLE_AUDIT_LOGGER |
| |
PEGASUS_USING_STD; | PEGASUS_USING_STD; |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
static const String providerModuleStatus [] = {"Unknown", "Other", "OK", "Degraded", |
static const String providerModuleStatus [] = { |
|
"Unknown", "Other", "OK", "Degraded", |
"Stressed", "Predictive Failure", "Error", "Non-Recoverable Error", | "Stressed", "Predictive Failure", "Error", "Non-Recoverable Error", |
"Starting", "Stopping", "Stopped", "In Service", "No Contact", | "Starting", "Stopping", "Stopped", "In Service", "No Contact", |
"Lost Communication"}; | "Lost Communication"}; |
|
|
| |
void AuditLogger::logCurrentEnvironmentVar() | void AuditLogger::logCurrentEnvironmentVar() |
{ | { |
|
#ifdef PEGASUS_OS_DARWIN |
|
char** envp = *_NSGetEnviron(); |
|
#else |
char ** envp = environ; | char ** envp = environ; |
|
#endif |
|
|
Uint32 i = 0; | Uint32 i = 0; |
| |
while (envp[i]) | while (envp[i]) |
|
|
EVENT_UPDATE, Logger::INFORMATION, msgParms); | EVENT_UPDATE, Logger::INFORMATION, msgParms); |
} | } |
| |
|
void AuditLogger::logLocalAuthentication( |
|
const String& userName, |
|
Boolean successful) |
|
{ |
|
MessageLoaderParms msgParms( |
|
"Common.AuditLogger.LOCAL_AUTHENTICATION", |
|
"Local authentication attempt: " |
|
"successful = $0, user = $1. ", |
|
CIMValue(successful).toString(), |
|
userName); |
|
|
|
_writeAuditMessageToFile( |
|
TYPE_AUTHENTICATION, |
|
SUBTYPE_LOCAL_AUTHENTICATION, |
|
successful ? EVENT_AUTH_SUCCESS : EVENT_AUTH_FAILURE, |
|
successful ? Logger::INFORMATION : Logger::WARNING, |
|
msgParms); |
|
} |
|
|
|
void AuditLogger::logBasicAuthentication( |
|
const String& userName, |
|
const String& ipAddr, |
|
Boolean successful) |
|
{ |
|
MessageLoaderParms msgParms( |
|
"Common.AuditLogger.BASIC_AUTHENTICATION", |
|
"Basic authentication attempt: " |
|
"successful = $0, user = $1, IP address = $2.", |
|
CIMValue(successful).toString(), |
|
userName, |
|
ipAddr); |
|
|
|
_writeAuditMessageToFile( TYPE_AUTHENTICATION, |
|
SUBTYPE_BASIC_AUTHENTICATION, |
|
successful ? EVENT_AUTH_SUCCESS : EVENT_AUTH_FAILURE, |
|
successful ? Logger::INFORMATION: Logger::WARNING, |
|
msgParms); |
|
} |
|
|
|
void AuditLogger::logCertificateBasedAuthentication( |
|
const String& issuerName, |
|
const String& subjectName, |
|
const String& serialNumber, |
|
const String& ipAddr, |
|
Boolean successful) |
|
{ |
|
MessageLoaderParms msgParms( |
|
"Common.AuditLogger.CERTIFICATE_BASED_AUTHENTICATION", |
|
"Certificate based authentication attempt: " |
|
"successful = $0, issuer = $1, subject = $2, serialNumber = $3, " |
|
"IP address = $4.", |
|
CIMValue(successful).toString(), |
|
issuerName, |
|
subjectName, |
|
serialNumber, |
|
ipAddr); |
|
|
|
_writeAuditMessageToFile(TYPE_AUTHENTICATION, |
|
SUBTYPE_CERTIFICATE_BASED_AUTHENTICATION, |
|
successful ? EVENT_AUTH_SUCCESS : EVENT_AUTH_FAILURE, |
|
successful ? Logger::INFORMATION: Logger::WARNING, |
|
msgParms); |
|
} |
|
|
|
void AuditLogger::logCertificateBasedUserValidation( |
|
const String& userName, |
|
const String& issuerName, |
|
const String& subjectName, |
|
const String& serialNumber, |
|
const String& ipAddr, |
|
Boolean successful) |
|
{ |
|
MessageLoaderParms msgParms( |
|
"Common.AuditLogger.CERTIFICATE_BASED_USER_VALIDATION", |
|
"Certificate based user validation attempt: " |
|
"successful = $0, userName = $1, issuer = $2, subject = $3, " |
|
"serialNumber = $4, IP address = $5.", |
|
CIMValue(successful).toString(), |
|
userName, |
|
issuerName, |
|
subjectName, |
|
serialNumber, |
|
ipAddr); |
|
|
|
_writeAuditMessageToFile( TYPE_AUTHORIZATION, |
|
SUBTYPE_CERTIFICATE_BASED_USER_VALIDATION, |
|
successful ? EVENT_AUTH_SUCCESS : EVENT_AUTH_FAILURE, |
|
successful ? Logger::INFORMATION: Logger::WARNING, |
|
msgParms); |
|
} |
| |
void AuditLogger::setInitializeCallback( | void AuditLogger::setInitializeCallback( |
PEGASUS_AUDITLOGINITIALIZE_CALLBACK_T auditLogInitializeCallback) | PEGASUS_AUDITLOGINITIALIZE_CALLBACK_T auditLogInitializeCallback) |
|
|
} | } |
} | } |
| |
return (moduleStatusValue); |
return moduleStatusValue; |
} | } |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |