gss_authorize_localname implementation

This commit is contained in:
Luke Howard
2011-04-08 10:58:57 +10:00
parent 6ec5011d48
commit 6c6e483e00
9 changed files with 103 additions and 85 deletions

View File

@@ -33,18 +33,30 @@
#include "gsskrb5_locl.h"
OM_uint32
_gsskrb5_userok(OM_uint32 *minor_status,
const gss_name_t input_name,
const char *user,
int *user_ok)
_gsskrb5_authorize_localname(OM_uint32 *minor_status,
const gss_name_t input_name,
gss_const_buffer_t user_name,
int *user_ok)
{
krb5_context context;
krb5_const_principal princ = (krb5_const_principal)input_name;
krb5_principal princ = (krb5_principal)input_name;
char *user;
GSSAPI_KRB5_INIT(&context);
user = malloc(user_name->length + 1);
if (user == NULL) {
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
memcpy(user, user_name->value, user_name->length);
user[user_name->length] = '\0';
*minor_status = 0;
*user_ok = krb5_kuserok(context, princ, user);
free(user);
return GSS_S_COMPLETE;
}

View File

@@ -325,7 +325,7 @@ static gssapi_mech_interface_desc krb5_mech = {
krb5_mo,
sizeof(krb5_mo) / sizeof(krb5_mo[0]),
NULL,
_gsskrb5_userok,
_gsskrb5_authorize_localname,
_gsskrb5_pname_to_uid
};