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:
parent
01b99ffc0d
commit
cf819ea918
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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)
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user