Fixed issues found when testing the auth.policy mechanism_info changes

for the Krb5 and the Pwd mechanisms using a linux client.
This commit is contained in:
Juan Carlos Luciani 2007-03-26 21:45:10 +00:00
parent ee997dee89
commit 5ba91c92a6
7 changed files with 87 additions and 86 deletions

View File

@ -89,7 +89,7 @@ RemoveWhiteSpaceFromTheEnd(
char *pLineEnd = (char*) pInString + strlen(pInString) - 1;
DbgTrace(3, "-RemoveWhiteSpaceFromTheEnd- Start\n", 0);
DbgTrace(4, "-RemoveWhiteSpaceFromTheEnd- Start\n", 0);
while (pLineEnd != pInString)
{
@ -108,7 +108,7 @@ RemoveWhiteSpaceFromTheEnd(
}
}
DbgTrace(3, "-RemoveWhiteSpaceFromTheEnd- End\n", 0);
DbgTrace(4, "-RemoveWhiteSpaceFromTheEnd- End\n", 0);
}
@ -130,7 +130,7 @@ SkipWhiteSpace(
{
char *pOutString = (char*) pInString;
DbgTrace(3, "-SkipWhiteSpace- Start\n", 0);
DbgTrace(4, "-SkipWhiteSpace- Start\n", 0);
while (*pOutString != '\0')
{
@ -148,7 +148,7 @@ SkipWhiteSpace(
}
}
DbgTrace(3, "-SkipWhiteSpace- End\n", 0);
DbgTrace(4, "-SkipWhiteSpace- End\n", 0);
return pOutString;
}
@ -172,7 +172,7 @@ SkipNonWhiteSpace(
{
char *pOutString = (char*) pInString;
DbgTrace(3, "-SkipNonWhiteSpace- Start\n", 0);
DbgTrace(4, "-SkipNonWhiteSpace- Start\n", 0);
while (*pOutString != '\0')
{
@ -190,7 +190,7 @@ SkipNonWhiteSpace(
}
}
DbgTrace(3, "-SkipNonWhiteSpace- End\n", 0);
DbgTrace(4, "-SkipNonWhiteSpace- End\n", 0);
return pOutString;
}
@ -216,7 +216,7 @@ LowerCaseString(
{
int i;
DbgTrace(3, "-LowerCaseString- Start\n", 0);
DbgTrace(4, "-LowerCaseString- Start\n", 0);
// Copy the string as lower case
for (i = 0; pSrcString[i] != '\0'; i++)
@ -230,7 +230,7 @@ LowerCaseString(
// Null terminate the destination string
pDestString[i] = '\0';
DbgTrace(3, "-LowerCaseString- End\n", 0);
DbgTrace(4, "-LowerCaseString- End\n", 0);
}

View File

@ -61,7 +61,7 @@ StaticLockFunction(
// L2
//=======================================================================--
{
DbgTrace(3, "-StaticLockFunction- Start\n", 0);
DbgTrace(4, "-StaticLockFunction- Start\n", 0);
// Verify that the lock number is within range
if (n < g_numStaticLocks
@ -84,7 +84,7 @@ StaticLockFunction(
DbgTrace(0, "-StaticLockFunction- n out of range\n", 0);
}
DbgTrace(3, "-StaticLockFunction- End\n", 0);
DbgTrace(4, "-StaticLockFunction- End\n", 0);
}
@ -107,7 +107,7 @@ DynLockFunction(
// L2
//=======================================================================--
{
DbgTrace(3, "-DynLockFunction- Start\n", 0);
DbgTrace(4, "-DynLockFunction- Start\n", 0);
if (l)
{
@ -128,7 +128,7 @@ DynLockFunction(
DbgTrace(0, "-DynLockFunction- Invalid parameter\n", 0);
}
DbgTrace(3, "-DynLockFunction- End\n", 0);
DbgTrace(4, "-DynLockFunction- End\n", 0);
}
@ -151,7 +151,7 @@ CreateDynLockFunction(
{
struct CRYPTO_dynlock_value *l;
DbgTrace(1, "-CreateDynLockFunction- Start\n", 0);
DbgTrace(3, "-CreateDynLockFunction- Start\n", 0);
// Allocate space for the lock
l = (struct CRYPTO_dynlock_value*) malloc(sizeof(pthread_mutex_t));
@ -164,7 +164,7 @@ CreateDynLockFunction(
DbgTrace(0, "-CreateDynLockFunction- Buffer allocation failure\n", 0);
}
DbgTrace(1, "-CreateDynLockFunction- End, l = %0lX\n", (long) l);
DbgTrace(3, "-CreateDynLockFunction- End, l = %0lX\n", (long) l);
return l;
}
@ -188,7 +188,7 @@ DestroyDynLockFunction(
// L2
//=======================================================================--
{
DbgTrace(1, "-DestroyDynLockFunction- Start, l = %0lX\n", (long) l);
DbgTrace(3, "-DestroyDynLockFunction- Start, l = %0lX\n", (long) l);
if (l)
{
@ -196,7 +196,7 @@ DestroyDynLockFunction(
free(l);
}
DbgTrace(1, "-DestroyDynLockFunction- End\n", 0);
DbgTrace(3, "-DestroyDynLockFunction- End\n", 0);
}
@ -217,11 +217,11 @@ ThreadIdFunction(void)
{
unsigned long threadId;
DbgTrace(3, "-ThreadIdFunction- Start\n", 0);
DbgTrace(4, "-ThreadIdFunction- Start\n", 0);
threadId = (unsigned long) pthread_self();
DbgTrace(3, "-ThreadIdFunction- End, id = %0lX\n", threadId);
DbgTrace(4, "-ThreadIdFunction- End, id = %0lX\n", threadId);
return threadId;
}

View File

@ -210,36 +210,36 @@ AuthTokenIf_GetAuthToken(
goto exit;
}
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (strcmpi(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
printf("Bad setting\n");
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
}
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (strcasecmp(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
}
// Check if we need to construct the service name
if (pKrbServiceName == NULL

View File

@ -119,36 +119,36 @@ AuthTokenIf_GetAuthToken(
goto exit;
}
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (strcmpi(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
printf("Bad setting\n");
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
}
// Process any mechanism information that may have been provided
if (pMechInfo)
{
// Mechanism information has been provided. Mechanism information
// consists of semicolon delimited settings. The settings are formated
// using the format settingName=settingvalue. No white space is allowed
// as part of the mechanism information.
char *pNextSettingToken;
char *pSettingValueToken = strtok_r(pMechInfo, ";", &pNextSettingToken);
while (pSettingValueToken != NULL)
{
char *pNextToken;
char *pSettingName = strtok_r(pSettingValueToken, "=", &pNextToken);
char *pSettingValue = strtok_r(NULL, "=", &pNextToken);
if (pSettingValue)
{
// Process the setting
if (strcmpi(pSettingName, "SVC_PRINCIPAL") == 0)
{
pKrbServiceName = pSettingValue;
}
}
else
{
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);
}
}
// Check if we need to construct the service name
if (pKrbServiceName == NULL

View File

@ -316,9 +316,9 @@ AuthTokenIf_GetAuthToken(
if (pSettingValue)
{
// Process the setting
if (strcmpi(pSettingName, "REALM_CREDENTIALS_ONLY") == 0)
if (strcasecmp(pSettingName, "REALM_CREDENTIALS_ONLY") == 0)
{
if (strcmpi(pSettingValue, "true") == 0)
if (strcasecmp(pSettingValue, "true") == 0)
{
realm_credentials_only = true;
}
@ -326,7 +326,7 @@ AuthTokenIf_GetAuthToken(
}
else
{
printf("Bad setting\n");
DbgTrace(0, "-AuthTokenIf_GetAuthToken- Bad setting\n", 0);
}
pSettingValueToken = strtok_r(NULL, ";", &pNextSettingToken);

View File

@ -79,6 +79,7 @@ FILE *pDebugFile; \
#define true TRUE
#define false FALSE
#define strtok_r strtok_s
#define strcasecmp strcmpi
//===[ Inlines functions ]===============================================

View File

@ -184,7 +184,7 @@ The following is an example auth.policy file:
<auth_source>
<realm>CorpTree</realm>
<mechanism>Krb5Authenticate</mechanism>
<mechanism_info>SVC_PRINCIPAL=host/tokenserver.company.novell.com@KRB_REALM</mechanism_info>
<mechanism_info>SVC_PRINCIPAL=host/tokenserver.company.novell.com</mechanism_info>
</auth_source>
<auth_source>
<realm>CorpTree</realm>
@ -211,10 +211,10 @@ Note the following about the sample auth.policy file:
configuration requirements of the specified mechanism.
- The name of the Krb5 Authentication mechanism is "Krb5Authenticate". This mechanism
defaults the service principal name to host/hostname@KERBEROS_REALM. You can use a
different service principal name by setting the SVC_PRINCIPAL setting equal to it
under the mechanism_info key. Notice that mechanism info settings for this mechanism
are separated using a semicolon and no-white space is allowed.
defaults the service principal name to host/hostname. You can use a different
service principal name by setting the SVC_PRINCIPAL setting equal to it under the
mechanism_info key. Notice that mechanism info settings for this mechanism are
separated using a semicolon and no-white space is allowed.
- The name of the username/password authentication mechanism is "PwdAuthenticate" and
it does not require any information to be included under the mechanism_info key. You