Gisle Aas wrote:
> "Jeremy Howard" <[EMAIL PROTECTED]> writes:
>
> > I found that using LWP::Authen::Digest with an incorrect password causes
> > infinite recursion. This is because the auth string changes each time as
the
> > nonce changes. Patch follows. It can be applied with:
>
> This patch breaks the test suite.  The reason is that it prevents
> retrials with the same username, but with different passwords.  I have
> applied the following patch instead.  Can you check that it works for
> you?
>
Works for me. Thanks Gisle.

What's the "we shouldn't really do this but" comment referring to? Is there
a potential side effect to be aware of here?

> Index: lib/LWP/Authen/Digest.pm
> ===================================================================
> RCS file: /cvsroot/libwww-perl/lwp5/lib/LWP/Authen/Digest.pm,v
> retrieving revision 1.5
> diff -u -p -u -r1.5 Digest.pm
> --- lib/LWP/Authen/Digest.pm 2001/11/27 16:37:46 1.5
> +++ lib/LWP/Authen/Digest.pm 2002/02/07 05:43:21
> @@ -69,8 +69,8 @@ sub authenticate
>      # Need to check this isn't a repeated fail!
>      my $r = $response;
>      while ($r) {
> - my $auth = $r->request->header($auth_header);
> - if ($auth && $auth eq $auth_value) {
> + my $u = $r->request->{digest_user_pass};
> + if ($u && $u->[0] eq $user && $u->[1] eq $pass) {
>       # here we know this failed before
>       $response->header("Client-Warning" =>
>         "Credentials for '$user' failed before");
> @@ -81,6 +81,9 @@ sub authenticate
>
>      my $referral = $request->clone;
>      $referral->header($auth_header => $auth_value);
> +    # we shouldn't really do this, but...
> +    $referral->{digest_user_pass} = [$user, $pass];
> +
>      return $ua->request($referral, $arg, $size, $response);
>  }


Reply via email to