X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mod_auth_gssapi.git;a=blobdiff_plain;f=src%2Fmod_auth_gssapi.c;h=c33ea34a02a4966c215dd7ce74dbef61e0b5de5c;hp=220ccab2dfec6bba807c9cfc3da45c2b5fb1f81a;hb=bb7c20bc7f487b52c79ec0279c3f83d13582f9c2;hpb=68e061102c6b1df375dcac618b71140c640bab02 diff --git a/src/mod_auth_gssapi.c b/src/mod_auth_gssapi.c index 220ccab..c33ea34 100644 --- a/src/mod_auth_gssapi.c +++ b/src/mod_auth_gssapi.c @@ -166,6 +166,7 @@ static int mag_auth(request_rec *req) gss_name_t client = GSS_C_NO_NAME; gss_cred_id_t acquired_cred = GSS_C_NO_CREDENTIAL; gss_cred_id_t delegated_cred = GSS_C_NO_CREDENTIAL; + gss_cred_usage_t cred_usage = GSS_C_ACCEPT; uint32_t flags; uint32_t vtime; uint32_t maj, min; @@ -208,7 +209,9 @@ static int mag_auth(request_rec *req) } /* if available, session always supersedes connection bound data */ - mag_check_session(req, cfg, &mc); + if (cfg->use_sessions) { + mag_check_session(req, cfg, &mc); + } if (mc) { /* register the context in the memory pool, so it can be freed @@ -247,8 +250,11 @@ static int mag_auth(request_rec *req) #ifdef HAVE_GSS_ACQUIRE_CRED_FROM if (cfg->use_s4u2proxy) { + cred_usage = GSS_C_BOTH; + } + if (cfg->cred_store) { maj = gss_acquire_cred_from(&min, GSS_C_NO_NAME, 0, - GSS_C_NO_OID_SET, GSS_C_BOTH, + GSS_C_NO_OID_SET, cred_usage, cfg->cred_store, &acquired_cred, NULL, NULL); if (GSS_ERROR(maj)) { @@ -331,7 +337,9 @@ static int mag_auth(request_rec *req) vtime = MIN_SESS_EXP_TIME; } mc->expiration = time(NULL) + vtime; - mag_attempt_session(req, cfg, mc); + if (cfg->use_sessions) { + mag_attempt_session(req, cfg, mc); + } } ret = OK;