-/* Copyright (C) 2015 mod_auth_gssapi authors - See COPYING for (C) terms */
+/* Copyright (C) 2015, 2016 mod_auth_gssapi contributors - See COPYING for (C) terms */
#include "mod_auth_gssapi.h"
void mag_get_name_attributes(request_rec *req, struct mag_config *cfg,
gss_name_t name, struct mag_conn *mc)
{
+ if (!cfg->name_attributes) {
+ return;
+ }
+
uint32_t maj, min;
gss_buffer_set_t attrs = GSS_C_NO_BUFFER_SET;
struct name_attr attr;
attr.value = empty_buffer;
attr.display_value = empty_buffer;
- if (!mag_get_name_attr(req, name, &attr)) continue;
+ if (!mag_get_name_attr(req, name, &attr)) break;
if (cfg->name_attributes->output_json) {
mag_add_json_name_attr(req, i == 0, &attr, &json);
}
}
-static void mag_set_KRB5CCANME(request_rec *req, char *ccname)
+static void mag_set_KRB5CCANME(request_rec *req, const char *dir,
+ const char *ccname)
{
apr_status_t status;
apr_finfo_t finfo;
"KRB5CCNAME file (%s) lookup failed!", ccname);
}
- value = apr_psprintf(req->pool, "FILE:%s", ccname);
+ value = apr_psprintf(req->pool, "FILE:%s/%s", dir, ccname);
apr_table_set(req->subprocess_env, "KRB5CCNAME", value);
}
mag_set_name_attributes(req, mc);
}
- if (cfg->deleg_ccache_dir && mc->delegated) {
- char *ccname;
- ccname = mag_gss_name_to_ccache_name(req,
- cfg->deleg_ccache_dir,
- mc->gss_name);
- if (ccname) {
- mag_set_KRB5CCANME(req, ccname);
- }
+#ifdef HAVE_CRED_STORE
+ if (cfg->deleg_ccache_dir && mc->delegated && mc->ccname) {
+ mag_set_KRB5CCANME(req, cfg->deleg_ccache_dir, mc->ccname);
}
+#endif
}