More client changes to remove the requirement that the server send mechanism information data along with the mechanism name in the auth.policy.

This commit is contained in:
Juan Carlos Luciani 2006-11-06 04:29:01 +00:00
parent 01b99ffc0d
commit cf819ea918
8 changed files with 50 additions and 10 deletions

View File

@ -249,6 +249,7 @@ GetAuthTokenIf(
CasaStatus CasaStatus
GetAuthMechToken( GetAuthMechToken(
IN AuthContext *pAuthContext, IN AuthContext *pAuthContext,
IN const char *pHostName,
IN void *pCredStoreScope, IN void *pCredStoreScope,
INOUT char **ppAuthToken) INOUT char **ppAuthToken)
// //
@ -286,6 +287,7 @@ GetAuthMechToken(
retStatus = pAuthTokenIf->getAuthToken(pAuthTokenIf, retStatus = pAuthTokenIf->getAuthToken(pAuthTokenIf,
pAuthContext->pContext, pAuthContext->pContext,
pAuthContext->pMechInfo, pAuthContext->pMechInfo,
pHostName,
pCredStoreScope, pCredStoreScope,
pAuthToken, pAuthToken,
&authTokenBufLen); &authTokenBufLen);
@ -299,6 +301,7 @@ GetAuthMechToken(
retStatus = pAuthTokenIf->getAuthToken(pAuthTokenIf, retStatus = pAuthTokenIf->getAuthToken(pAuthTokenIf,
pAuthContext->pContext, pAuthContext->pContext,
pAuthContext->pMechInfo, pAuthContext->pMechInfo,
pHostName,
pCredStoreScope, pCredStoreScope,
pAuthToken, pAuthToken,
&authTokenBufLen); &authTokenBufLen);

View File

@ -58,8 +58,9 @@ CasaStatus
ObtainSessionToken( ObtainSessionToken(
IN RpcSession *pRpcSession, IN RpcSession *pRpcSession,
IN AuthPolicy *pAuthPolicy, IN AuthPolicy *pAuthPolicy,
INOUT char **ppSessionToken, IN const char *pHostName,
IN void *pCredStoreScope) IN void *pCredStoreScope,
INOUT char **ppSessionToken)
// //
// Arguments: // Arguments:
// //
@ -139,6 +140,7 @@ ObtainSessionToken(
// Get authentication mechanism token // Get authentication mechanism token
retStatus = GetAuthMechToken(pAuthContext, retStatus = GetAuthMechToken(pAuthContext,
pHostName,
pCredStoreScope, pCredStoreScope,
&pAuthMechToken); &pAuthMechToken);
if (!CASA_SUCCESS(retStatus)) if (!CASA_SUCCESS(retStatus))
@ -328,8 +330,9 @@ ObtainAuthTokenFromServer(
// Now try to obtain a session token // Now try to obtain a session token
retStatus = ObtainSessionToken(pRpcSession, retStatus = ObtainSessionToken(pRpcSession,
pAuthPolicy, pAuthPolicy,
&pSessionToken, (g_pATSHostName != NULL) ? g_pATSHostName : pHostName,
pCredStoreScope); pCredStoreScope,
&pSessionToken);
if (CASA_SUCCESS(retStatus)) if (CASA_SUCCESS(retStatus))
{ {
// Request auth token for the service // Request auth token for the service
@ -847,11 +850,36 @@ InitializeLibrary(void)
retStatus = InitializeHostNameNormalization(); retStatus = InitializeHostNameNormalization();
if (CASA_SUCCESS(retStatus)) if (CASA_SUCCESS(retStatus))
{ {
retStatus = InitializeAuthCache(); // Normalize ATS host name if configured
if (CASA_SUCCESS(retStatus)) if (g_pATSHostName)
{ {
retStatus = InitializeRpc(); char *pNormalizedHostName = NormalizeHostName(g_pATSHostName);
} if (pNormalizedHostName)
{
// Use this name instead of the one that we already have
free(g_pATSHostName);
g_pATSHostName = pNormalizedHostName;
}
else
{
DbgTrace(0, "-InitializeLibrary- ATS Hostname normalization failed\n", 0);
}
}
// Initialize the auth cache
retStatus = InitializeAuthCache();
if (CASA_SUCCESS(retStatus))
{
retStatus = InitializeRpc();
}
else
{
DbgTrace(0, "-InitializeLibrary- Auth cache intialization failed\n", 0);
}
}
else
{
DbgTrace(0, "-InitializeLibrary- HostName Normalizer intialization failed\n", 0);
} }
DbgTrace(1, "-InitializeLibrary- End, retStatus = %08X\n", retStatus); DbgTrace(1, "-InitializeLibrary- End, retStatus = %08X\n", retStatus);

View File

@ -149,6 +149,7 @@ extern
CasaStatus CasaStatus
GetAuthMechToken( GetAuthMechToken(
IN AuthContext *pAuthContext, IN AuthContext *pAuthContext,
IN const char *pHostName,
IN void *pCredStoreScope, IN void *pCredStoreScope,
INOUT char **ppAuthMechToken); INOUT char **ppAuthMechToken);

View File

@ -88,6 +88,7 @@ CasaStatus
IN const void *pIfInstance, IN const void *pIfInstance,
IN const char *pContext, IN const char *pContext,
IN const char *pMechInfo, IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope, IN void *pCredStoreScope,
INOUT char *pTokenBuf, INOUT char *pTokenBuf,
INOUT int *pTokenBufLen); INOUT int *pTokenBufLen);
@ -109,6 +110,10 @@ CasaStatus
// may be the service principal name to which the user will be // may be the service principal name to which the user will be
// authenticating. // authenticating.
// //
// pHostName -
// Pointer to null terminated string containing the name of the
// host where the ATS resides.
//
// pCredStoreScope - // pCredStoreScope -
// Pointer to CASA structure for scoping credential store access // Pointer to CASA structure for scoping credential store access
// to specific users. This can only be leveraged when running in // to specific users. This can only be leveraged when running in

View File

@ -57,6 +57,7 @@ AuthTokenIf_GetAuthToken(
IN const void *pIfInstance, IN const void *pIfInstance,
IN const char *pContext, IN const char *pContext,
IN const char *pMechInfo, IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope, IN void *pCredStoreScope,
INOUT char *pTokenBuf, INOUT char *pTokenBuf,
INOUT int *pTokenBufLen); INOUT int *pTokenBufLen);

View File

@ -124,7 +124,7 @@ AuthTokenIf_GetAuthToken(
|| strlen(pKrbServiceName) == 0) || strlen(pKrbServiceName) == 0)
{ {
// The service name will default to host/hostname // The service name will default to host/hostname
pKrbServiceName = malloc(5 /*"host/"*/ + strlen(pHostName) + 1 /*'/0'*/) pKrbServiceName = malloc(5 /*"host/"*/ + strlen(pHostName) + 1 /*'/0'*/);
if (pKrbServiceName) if (pKrbServiceName)
{ {
sprintf("host/%s", pHostName); sprintf("host/%s", pHostName);

View File

@ -190,6 +190,7 @@ AuthTokenIf_GetAuthToken(
IN const void *pIfInstance, IN const void *pIfInstance,
IN const char *pContext, IN const char *pContext,
IN const char *pMechInfo, IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope, IN void *pCredStoreScope,
INOUT char *pTokenBuf, INOUT char *pTokenBuf,
INOUT int *pTokenBufLen) INOUT int *pTokenBufLen)

View File

@ -59,6 +59,7 @@ AuthTokenIf_GetAuthToken(
IN const void *pIfInstance, IN const void *pIfInstance,
IN const char *pContext, IN const char *pContext,
IN const char *pMechInfo, IN const char *pMechInfo,
IN const char *pHostName,
IN void *pCredStoreScope, IN void *pCredStoreScope,
INOUT char *pTokenBuf, INOUT char *pTokenBuf,
INOUT int *pTokenBufLen); INOUT int *pTokenBufLen);