diff options
| author | Greg Hudson <ghudson@mit.edu> | 2011-04-04 15:59:35 +0000 |
|---|---|---|
| committer | Greg Hudson <ghudson@mit.edu> | 2011-04-04 15:59:35 +0000 |
| commit | e2c6d09c74ed23e72755d6bc94f3844b0bd3d1eb (patch) | |
| tree | 7daca06e940bd9ec1fdd698fb56b43c6cf03f32f /src/appl | |
| parent | 9880b7b620dcfa545f41a3046d09c1fc72583893 (diff) | |
| download | krb5-e2c6d09c74ed23e72755d6bc94f3844b0bd3d1eb.tar.gz krb5-e2c6d09c74ed23e72755d6bc94f3844b0bd3d1eb.tar.xz krb5-e2c6d09c74ed23e72755d6bc94f3844b0bd3d1eb.zip | |
Add gss_userok and gss_pname_to_uid
Resurrect gss_userok and gss_pname_to_uid in the mechglue. Add krb5
mech implementations using krb5_kuserok and krb5_aname_to_localname,
as well as mechanism-independent implementations based on name
attributes.
From r24710, r24715, r24717, r24731, r24732, r24733, r24734, r24735,
r24747, r24816, and r24819 in users/lhoward/moonshot-mechglue-fixes,
with minor edits.
ticket: 6891
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24836 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/appl')
| -rw-r--r-- | src/appl/gss-sample/gss-server.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/appl/gss-sample/gss-server.c b/src/appl/gss-sample/gss-server.c index e83326791a..9b5cab29e5 100644 --- a/src/appl/gss-sample/gss-server.c +++ b/src/appl/gss-sample/gss-server.c @@ -69,6 +69,8 @@ static OM_uint32 enumerateAttributes(OM_uint32 *minor, gss_name_t name, int noisy); +static OM_uint32 +showLocalIdentity(OM_uint32 *minor, gss_name_t name); static void usage() @@ -267,6 +269,7 @@ server_establish_context(int s, gss_cred_id_t server_creds, return -1; } enumerateAttributes(&min_stat, client, TRUE); + showLocalIdentity(&min_stat, client); maj_stat = gss_release_name(&min_stat, &client); if (maj_stat != GSS_S_COMPLETE) { display_status("releasing name", maj_stat, min_stat); @@ -876,3 +879,18 @@ enumerateAttributes(OM_uint32 *minor, return major; } + +static OM_uint32 +showLocalIdentity(OM_uint32 *minor, gss_name_t name) +{ + OM_uint32 major; + uid_t uid; + + major = gss_pname_to_uid(minor, name, GSS_C_NO_OID, &uid); + if (major == GSS_S_COMPLETE) + printf("UID: %lu\n", (unsigned long)uid); + else if (major != GSS_S_UNAVAILABLE) + display_status("gss_pname_to_uid", major, *minor); + + return major; +} |
