]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Henrik Nordstrom <henrik@henriknordstrom.net>
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 10 Mar 2010 11:57:17 +0000 (00:57 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 10 Mar 2010 11:57:17 +0000 (00:57 +1300)
Bug 2367: Fix stale=true on digest requests with unknown nonce

The nonce staleness check only worked if the stale nonce had not yet
been garbage collected, often resulting in incorrect stale=false
responses and resulting auth popups when using digest auth.

Note: this fix is different from how it's done in squid-2 where fixHeader
is called on all schemes in such conditions but only the active one with
and auth_user_request. Not entirely sure why that is done, but commit
message says something about Negotiate authentication.

src/auth/digest/auth_digest.cc

index 784cc5ef8288373a8d72ed215f6108f48a322f2b..cff25b63ae71305ee7f4ef10179bd2f43ce44bac 100644 (file)
@@ -1309,6 +1309,7 @@ AuthDigestConfig::decode(char const *proxy_auth)
     if (!nonce) {
         /* we couldn't find a matching nonce! */
         debugs(29, 2, "authenticateDigestDecode: Unexpected or invalid nonce received");
+        digest_request->credentials(AuthDigestUserRequest::Failed);
         return authDigestLogUsername(username, digest_request);
     }