Mailing List Archive

[svn] r892 - in RT-Client: . lib/LWP/Authen lib/RT
Author: autrijus
Date: Fri May 14 09:29:44 2004
New Revision: 892

Modified:
RT-Client/ (props changed)
RT-Client/lib/LWP/Authen/Wsse.pm
RT-Client/lib/RT/Client.pm
Log:
----------------------------------------------------------------------
r4867@not: autrijus | 2004-05-14T13:29:31.925169Z

* Avoid infinitely redirects on wrong crednetials.
* Correctly parse Mason errors as true errors.
----------------------------------------------------------------------


Modified: RT-Client/lib/LWP/Authen/Wsse.pm
==============================================================================
--- RT-Client/lib/LWP/Authen/Wsse.pm (original)
+++ RT-Client/lib/LWP/Authen/Wsse.pm Fri May 14 09:29:44 2004
@@ -1,9 +1,10 @@
package LWP::Authen::Wsse;
-use strict;

-require Digest::MD5;
-require Digest::SHA1;
-require MIME::Base64;
+use strict;
+use DateTime;
+use Digest::MD5;
+use Digest::SHA1;
+use MIME::Base64;

sub authenticate {
my($class, $ua, $proxy, $auth_param, $response,
@@ -33,9 +34,10 @@

# Need to check this isn't a repeated fail!
my $r = $response;
+ my $failed;
while ($r) {
- my $wsse = $r->request->header('X-WSSE');
- if ($wsse && $wsse eq $wsse_value) {
+ my $prev = $r->request->{wsse_user_pass};
+ if ($prev and $prev->[0] eq $user and $prev->[1] eq $pass and $r->code == 401 and $failed++) {
# here we know this failed before
$response->header("Client-Warning" =>
"Credentials for '$user' failed before");
@@ -48,7 +50,7 @@
$referral->header('X-WSSE' => $wsse_value);

# we shouldn't really do this, but...
- $referral->{digest_user_pass} = [$user, $pass];
+ $referral->{wsse_user_pass} = [$user, $pass];

return $ua->request($referral, $arg, $size, $response);
}

Modified: RT-Client/lib/RT/Client.pm
==============================================================================
--- RT-Client/lib/RT/Client.pm (original)
+++ RT-Client/lib/RT/Client.pm Fri May 14 09:29:44 2004
@@ -79,6 +79,12 @@
my $res = shift;
$res->content =~ /<(\w+)/ or return $res->content;

+ if ($1 eq 'html') {
+ $self->errstr($res->content);
+ $self->status(500);
+ return undef;
+ }
+
my $class = $self->_describe_map->{$1} or die "Sorry, type $1 not handled yet";
return $class->new(Client => $self, Stream => \$res->content, URI => $res->base);
}
_______________________________________________
Rt-commit mailing list
Rt-commit@lists.bestpractical.com
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-commit