From: Amos Jeffries Date: Wed, 5 May 2010 13:47:23 +0000 (+1200) Subject: Combine Basic auth credentials_checkedtime with auth expiretime fields. X-Git-Tag: SQUID_3_2_0_1~167^2~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=92bec429b5edb92baf9c79340fd31f6359d8006d;p=thirdparty%2Fsquid.git Combine Basic auth credentials_checkedtime with auth expiretime fields. --- diff --git a/src/auth/basic/auth_basic.cc b/src/auth/basic/auth_basic.cc index 163392b980..590e280ccc 100644 --- a/src/auth/basic/auth_basic.cc +++ b/src/auth/basic/auth_basic.cc @@ -98,17 +98,16 @@ BasicUser::ttl() const if (flags.credentials_ok != 1) return -1; // TTL is obsolete NOW. - int32_t basic_ttl = credentials_checkedtime - squid_curtime + static_cast(config)->credentialsTTL; + int32_t basic_ttl = expiretime - squid_curtime + static_cast(config)->credentialsTTL; int32_t global_ttl = static_cast(expiretime - squid_curtime + Config.authenticateTTL); return min(basic_ttl, global_ttl); } - bool BasicUser::authenticated() const { - if ((flags.credentials_ok == 1) && (credentials_checkedtime + static_cast(config)->credentialsTTL > squid_curtime)) + if ((flags.credentials_ok == 1) && (expiretime + static_cast(config)->credentialsTTL > squid_curtime)) return true; debugs(29, 4, "User not authenticated or credentials need rechecking."); @@ -197,7 +196,7 @@ authenticateBasicHandleReply(void *data, char *reply) r->auth_user_request->setDenyMessage(t); } - basic_auth->credentials_checkedtime = squid_curtime; + basic_auth->expiretime = squid_curtime; if (cbdataReferenceValidDone(r->data, &cbdata)) r->handler(cbdata, NULL); @@ -306,7 +305,7 @@ BasicUser::deleteSelf() const delete this; } -BasicUser::BasicUser(AuthConfig *aConfig) : AuthUser(aConfig) , passwd (NULL), credentials_checkedtime(0), auth_queue(NULL), cleartext(NULL), currentRequest(NULL), httpAuthHeader(NULL) +BasicUser::BasicUser(AuthConfig *aConfig) : AuthUser(aConfig) , passwd (NULL), auth_queue(NULL), cleartext(NULL), currentRequest(NULL), httpAuthHeader(NULL) { flags.credentials_ok = 0; } diff --git a/src/auth/basic/auth_basic.h b/src/auth/basic/auth_basic.h index 992b56aa5f..c6ccdd193c 100644 --- a/src/auth/basic/auth_basic.h +++ b/src/auth/basic/auth_basic.h @@ -48,7 +48,6 @@ public: virtual int32_t ttl() const; char *passwd; - time_t credentials_checkedtime; struct { unsigned int credentials_ok:2; /* 0=unchecked, 1=ok, 2=failed */ diff --git a/src/auth/basic/basicUserRequest.cc b/src/auth/basic/basicUserRequest.cc index f8829dcf54..b5cb0d4b57 100644 --- a/src/auth/basic/basicUserRequest.cc +++ b/src/auth/basic/basicUserRequest.cc @@ -30,7 +30,7 @@ AuthBasicUserRequest::authenticate(HttpRequest * request, ConnStateData * conn, return; /* are we about to recheck the credentials externally? */ - if ((basic_auth->credentials_checkedtime + static_cast(AuthConfig::Find("basic"))->credentialsTTL) <= squid_curtime) { + if ((basic_auth->expiretime + static_cast(AuthConfig::Find("basic"))->credentialsTTL) <= squid_curtime) { debugs(29, 4, "authBasicAuthenticate: credentials expired - rechecking"); return; } @@ -59,7 +59,7 @@ AuthBasicUserRequest::module_direction() case 1: /* checked & ok */ - if (basic_auth->credentials_checkedtime + static_cast(AuthConfig::Find("basic"))->credentialsTTL <= squid_curtime) + if (basic_auth->expiretime + static_cast(AuthConfig::Find("basic"))->credentialsTTL <= squid_curtime) return -1; return 0;