kdc: Provide extended error information in AS-REP error replies.

This change utilizes the addition of the e_data parameter to the
   windc_plugin in the heimdal code to pass extended information back
   to the client.  The extended information is provided in an e-data
   block as part of the kerberos error message, and allows the client
   to determine which specific error condition occurred.

From Andrew Kroeger and Andrew Bartlet


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22693 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-03-19 08:57:49 +00:00
parent 15684f3514
commit 8888b88979
3 changed files with 6 additions and 5 deletions

View File

@@ -1050,7 +1050,7 @@ _kdc_as_rep(krb5_context context,
goto out; goto out;
} }
ret = _kdc_windc_client_access(context, client, req); ret = _kdc_windc_client_access(context, client, req, &e_data);
if(ret) if(ret)
goto out; goto out;

View File

@@ -101,9 +101,10 @@ _kdc_pac_verify(krb5_context context,
krb5_error_code krb5_error_code
_kdc_windc_client_access(krb5_context context, _kdc_windc_client_access(krb5_context context,
struct hdb_entry_ex *client, struct hdb_entry_ex *client,
KDC_REQ *req) KDC_REQ *req,
krb5_data *e_data)
{ {
if (windcft == NULL) if (windcft == NULL)
return 0; return 0;
return (windcft->client_access)(windcctx, context, client, req); return (windcft->client_access)(windcctx, context, client, req, e_data);
} }

View File

@@ -64,10 +64,10 @@ typedef krb5_error_code
typedef krb5_error_code typedef krb5_error_code
(*krb5plugin_windc_client_access)( (*krb5plugin_windc_client_access)(
void *, krb5_context, struct hdb_entry_ex *, KDC_REQ *); void *, krb5_context, struct hdb_entry_ex *, KDC_REQ *, krb5_data *);
#define KRB5_WINDC_PLUGING_MINOR 2 #define KRB5_WINDC_PLUGING_MINOR 3
typedef struct krb5plugin_windc_ftable { typedef struct krb5plugin_windc_ftable {
int minor_version; int minor_version;