basic.pm

来自「网页留言本,比一般的留言簿管用」· PM 代码 · 共 37 行

PM
37
字号
package LWP::Authen::Basic;use strict;require MIME::Base64;sub authenticate{    my($class, $ua, $proxy, $auth_param, $response,       $request, $arg, $size) = @_;    my($user, $pass) = $ua->get_basic_credentials($auth_param->{realm},                                                  $request->url, $proxy);    return $response unless defined $user and defined $pass;    my $auth_header = $proxy ? "Proxy-Authorization" : "Authorization";    my $auth_value = "Basic " . MIME::Base64::encode("$user:$pass", "");    # 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) {	    # here we know this failed before	    $response->header("Client-Warning" =>			      "Credentials for '$user' failed before");	    return $response;	}	$r = $r->previous;    }    my $referral = $request->clone;    $referral->header($auth_header => $auth_value);    return $ua->request($referral, $arg, $size, $response);}1;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?