version 1.12, 2006/11/10 18:14:57
|
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; |
| |
|
|
| |
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]) |
|
|
const String& userName, | const String& userName, |
Boolean successful) | Boolean successful) |
{ | { |
CIMValue result(successful); |
|
|
|
MessageLoaderParms msgParms( | MessageLoaderParms msgParms( |
"Common.AuditLogger.LOCAL_AUTHENTICATION", | "Common.AuditLogger.LOCAL_AUTHENTICATION", |
"Local authentication attempt: " | "Local authentication attempt: " |
"successful = $0, user = $1. ", | "successful = $0, user = $1. ", |
result.toString(), |
CIMValue(successful).toString(), |
userName); | userName); |
| |
_writeAuditMessageToFile( | _writeAuditMessageToFile( |
|
|
const String& ipAddr, | const String& ipAddr, |
Boolean successful) | Boolean successful) |
{ | { |
CIMValue result(successful); |
|
|
|
MessageLoaderParms msgParms( | MessageLoaderParms msgParms( |
"Common.AuditLogger.BASIC_AUTHENTICATION", | "Common.AuditLogger.BASIC_AUTHENTICATION", |
"Basic authentication attempt: " | "Basic authentication attempt: " |
"successful = $0, user = $1, IP address = $2.", | "successful = $0, user = $1, IP address = $2.", |
result.toString(), |
CIMValue(successful).toString(), |
userName, | userName, |
ipAddr); | ipAddr); |
| |
|
|
msgParms); | 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) |
{ | { |