Add debug messages to krb5_get_creds

This commit is contained in:
Nicolas Williams
2015-04-01 19:29:48 -05:00
parent d5044abac8
commit c5e91cf462

View File

@@ -1054,8 +1054,7 @@ get_cred_kdc_referral(krb5_context context,
if (krb5_compare_creds(context,
KRB5_TC_DONT_MATCH_REALM,
&mcreds,
*tickets))
{
*tickets)) {
krb5_set_error_message(context, KRB5_GET_IN_TKT_LOOP,
N_("Referral from %s "
"loops back to realm %s", ""),
@@ -1077,6 +1076,8 @@ get_cred_kdc_referral(krb5_context context,
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);
if (ret)
goto out;
@@ -1225,6 +1226,20 @@ krb5_get_credentials_with_flags(krb5_context context,
krb5_creds *res_creds;
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) {
ret = krb5_enctype_valid(context, in_creds->session.keytype);
if (ret)
@@ -1293,6 +1308,20 @@ next_rule:
if(ret == 0 && (options & KRB5_GC_NO_STORE) == 0)
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:
in_creds->server = save_princ;
krb5_free_creds(context, res_creds);
@@ -1426,15 +1455,29 @@ krb5_get_creds(krb5_context context,
krb5_name_canon_rule_options rule_opts;
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) {
ret = krb5_enctype_valid(context, opt->enctype);
if (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);
if (ret)
return ret;
@@ -1527,6 +1570,20 @@ next_rule:
if (ret == 0 && (options & KRB5_GC_NO_STORE) == 0)
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:
krb5_free_creds(context, res_creds);
krb5_free_principal(context, in_creds.client);