Log what principal was used in the failure case
This commit is contained in:
18
kdc/kx509.c
18
kdc/kx509.c
@@ -345,10 +345,24 @@ _kdc_do_kx509(krb5_context context,
|
|||||||
ret = krb5_principal_compare(context, sprincipal, principal);
|
ret = krb5_principal_compare(context, sprincipal, principal);
|
||||||
krb5_free_principal(context, principal);
|
krb5_free_principal(context, principal);
|
||||||
if (ret != TRUE) {
|
if (ret != TRUE) {
|
||||||
|
char *expected, *used;
|
||||||
|
|
||||||
|
ret = krb5_unparse_name(context, sprincipal, &expected);
|
||||||
|
if (ret)
|
||||||
|
goto out;
|
||||||
|
ret = krb5_unparse_name(context, principal, &used);
|
||||||
|
if (ret) {
|
||||||
|
krb5_xfree(expected);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
ret = KRB5KDC_ERR_SERVER_NOMATCH;
|
ret = KRB5KDC_ERR_SERVER_NOMATCH;
|
||||||
krb5_set_error_message(context, ret,
|
krb5_set_error_message(context, ret,
|
||||||
"User %s used wrong Kx509 service principal",
|
"User %s used wrong Kx509 service "
|
||||||
cname);
|
"principal, expected: %s, used %s",
|
||||||
|
cname, expected, used);
|
||||||
|
krb5_xfree(expected);
|
||||||
|
krb5_xfree(used);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user