Add debug messages to krb5_get_creds
This commit is contained in:
@@ -859,9 +859,9 @@ get_cred_kdc_capath_worker(krb5_context context,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = get_cred_kdc_address (context, ccache, flags, NULL,
|
ret = get_cred_kdc_address(context, ccache, flags, NULL,
|
||||||
in_creds, tgt, impersonate_principal,
|
in_creds, tgt, impersonate_principal,
|
||||||
second_ticket, *out_creds);
|
second_ticket, *out_creds);
|
||||||
if (ret == 0 &&
|
if (ret == 0 &&
|
||||||
!krb5_principal_compare(context, in_creds->server,
|
!krb5_principal_compare(context, in_creds->server,
|
||||||
(*out_creds)->server)) {
|
(*out_creds)->server)) {
|
||||||
@@ -1050,12 +1050,11 @@ get_cred_kdc_referral(krb5_context context,
|
|||||||
krb5_cc_clear_mcred(&mcreds);
|
krb5_cc_clear_mcred(&mcreds);
|
||||||
mcreds.server = ticket.server;
|
mcreds.server = ticket.server;
|
||||||
|
|
||||||
while(tickets && *tickets){
|
while (tickets && *tickets){
|
||||||
if(krb5_compare_creds(context,
|
if (krb5_compare_creds(context,
|
||||||
KRB5_TC_DONT_MATCH_REALM,
|
KRB5_TC_DONT_MATCH_REALM,
|
||||||
&mcreds,
|
&mcreds,
|
||||||
*tickets))
|
*tickets)) {
|
||||||
{
|
|
||||||
krb5_set_error_message(context, KRB5_GET_IN_TKT_LOOP,
|
krb5_set_error_message(context, KRB5_GET_IN_TKT_LOOP,
|
||||||
N_("Referral from %s "
|
N_("Referral from %s "
|
||||||
"loops back to realm %s", ""),
|
"loops back to realm %s", ""),
|
||||||
@@ -1077,6 +1076,8 @@ get_cred_kdc_referral(krb5_context context,
|
|||||||
ticket.flags.b.ok_as_delegate = 0;
|
ticket.flags.b.ok_as_delegate = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_krb5_debug(context, 6, "get_cred_kdc_referral: got referral "
|
||||||
|
"to %s from %s", referral_realm, referral.server->realm);
|
||||||
ret = add_cred(context, &ticket, &referral_tgts);
|
ret = add_cred(context, &ticket, &referral_tgts);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -1144,13 +1145,13 @@ _krb5_get_cred_kdc_any(krb5_context context,
|
|||||||
|
|
||||||
/* Try capaths */
|
/* Try capaths */
|
||||||
return get_cred_kdc_capath(context,
|
return get_cred_kdc_capath(context,
|
||||||
flags,
|
flags,
|
||||||
ccache,
|
ccache,
|
||||||
in_creds,
|
in_creds,
|
||||||
impersonate_principal,
|
impersonate_principal,
|
||||||
second_ticket,
|
second_ticket,
|
||||||
out_creds,
|
out_creds,
|
||||||
ret_tgts);
|
ret_tgts);
|
||||||
}
|
}
|
||||||
|
|
||||||
static krb5_error_code
|
static krb5_error_code
|
||||||
@@ -1225,6 +1226,20 @@ krb5_get_credentials_with_flags(krb5_context context,
|
|||||||
krb5_creds *res_creds;
|
krb5_creds *res_creds;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (_krb5_have_debug(context, 5)) {
|
||||||
|
char *unparsed;
|
||||||
|
|
||||||
|
ret = krb5_unparse_name(context, in_creds->server, &unparsed);
|
||||||
|
if (ret) {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: unable to display "
|
||||||
|
"requested service principal");
|
||||||
|
} else {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: requesting a ticket "
|
||||||
|
"for %s", unparsed);
|
||||||
|
free(unparsed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (in_creds->session.keytype) {
|
if (in_creds->session.keytype) {
|
||||||
ret = krb5_enctype_valid(context, in_creds->session.keytype);
|
ret = krb5_enctype_valid(context, in_creds->session.keytype);
|
||||||
if (ret)
|
if (ret)
|
||||||
@@ -1293,6 +1308,20 @@ next_rule:
|
|||||||
if(ret == 0 && (options & KRB5_GC_NO_STORE) == 0)
|
if(ret == 0 && (options & KRB5_GC_NO_STORE) == 0)
|
||||||
store_cred(context, ccache, in_creds->server, *out_creds);
|
store_cred(context, ccache, in_creds->server, *out_creds);
|
||||||
|
|
||||||
|
if (_krb5_have_debug(context, 5)) {
|
||||||
|
char *unparsed;
|
||||||
|
|
||||||
|
ret = krb5_unparse_name(context, (*out_creds)->server, &unparsed);
|
||||||
|
if (ret) {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: unable to display "
|
||||||
|
"service principal");
|
||||||
|
} else {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: got a ticket for %s",
|
||||||
|
unparsed);
|
||||||
|
free(unparsed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
in_creds->server = save_princ;
|
in_creds->server = save_princ;
|
||||||
krb5_free_creds(context, res_creds);
|
krb5_free_creds(context, res_creds);
|
||||||
@@ -1426,15 +1455,29 @@ krb5_get_creds(krb5_context context,
|
|||||||
krb5_name_canon_rule_options rule_opts;
|
krb5_name_canon_rule_options rule_opts;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
memset(&in_creds, 0, sizeof(in_creds));
|
||||||
|
in_creds.server = rk_UNCONST(inprinc);
|
||||||
|
|
||||||
|
if (_krb5_have_debug(context, 5)) {
|
||||||
|
char *unparsed;
|
||||||
|
|
||||||
|
ret = krb5_unparse_name(context, in_creds.server, &unparsed);
|
||||||
|
if (ret) {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: unable to display "
|
||||||
|
"requested service principal");
|
||||||
|
} else {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: requesting a ticket "
|
||||||
|
"for %s", unparsed);
|
||||||
|
free(unparsed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (opt && opt->enctype) {
|
if (opt && opt->enctype) {
|
||||||
ret = krb5_enctype_valid(context, opt->enctype);
|
ret = krb5_enctype_valid(context, opt->enctype);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&in_creds, 0, sizeof(in_creds));
|
|
||||||
in_creds.server = rk_UNCONST(inprinc);
|
|
||||||
|
|
||||||
ret = krb5_cc_get_principal(context, ccache, &in_creds.client);
|
ret = krb5_cc_get_principal(context, ccache, &in_creds.client);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -1527,6 +1570,20 @@ next_rule:
|
|||||||
if (ret == 0 && (options & KRB5_GC_NO_STORE) == 0)
|
if (ret == 0 && (options & KRB5_GC_NO_STORE) == 0)
|
||||||
store_cred(context, ccache, inprinc, *out_creds);
|
store_cred(context, ccache, inprinc, *out_creds);
|
||||||
|
|
||||||
|
if (_krb5_have_debug(context, 5)) {
|
||||||
|
char *unparsed;
|
||||||
|
|
||||||
|
ret = krb5_unparse_name(context, (*out_creds)->server, &unparsed);
|
||||||
|
if (ret) {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: unable to display "
|
||||||
|
"service principal");
|
||||||
|
} else {
|
||||||
|
_krb5_debug(context, 5, "krb5_get_creds: got a ticket for %s",
|
||||||
|
unparsed);
|
||||||
|
free(unparsed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
krb5_free_creds(context, res_creds);
|
krb5_free_creds(context, res_creds);
|
||||||
krb5_free_principal(context, in_creds.client);
|
krb5_free_principal(context, in_creds.client);
|
||||||
|
Reference in New Issue
Block a user