const char *sent_pw = NULL;
const char *sent_name = NULL;
const char *realms = NULL;
+ const char *realm = NULL;
krb5_context kcontext = NULL;
krb5_error_code code;
krb5_principal client = NULL;
all_principals_unkown = 1;
realms = conf->krb_auth_realms;
do {
- if (realms && (code = krb5_set_default_realm(kcontext,
- ap_getword_white(r->pool, &realms)))){
- log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
- "krb5_set_default_realm() failed: %s",
- krb5_get_err_text(kcontext, code));
- continue;
- }
+ name = sent_name;
+ if (realms && (realm = ap_getword_white(r->pool, &realms)))
+ name = ap_psprintf(r->pool, "%s@%s", sent_name, realm);
if (client) {
krb5_free_principal(kcontext, client);
client = NULL;
}
- code = krb5_parse_name(kcontext, sent_name, &client);
+
+ code = krb5_parse_name(kcontext, name, &client);
if (code) {
log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"krb5_parse_name() failed: %s",
end:
log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
"kerb_authenticate_user_krb5pwd ret=%d user=%s authtype=%s",
- ret, (MK_USER)?MK_USER:"(NULL)", MK_AUTH_TYPE);
+ ret, (MK_USER)?MK_USER:"(NULL)", (MK_AUTH_TYPE)?MK_AUTH_TYPE:"(NULL)");
if (client)
krb5_free_principal(kcontext, client);
if (ccache)