HTTP-Headers-ActionPack
view release on metacpan or search on metacpan
lib/HTTP/Headers/ActionPack/Authorization/Basic.pm view on Meta::CPAN
use warnings;
use Carp qw[ confess ];
use MIME::Base64 qw[ encode_base64 decode_base64 ];
use parent 'HTTP::Headers::ActionPack::Core::Base';
sub BUILDARGS {
my $class = shift;
my $type = shift || confess "Must specify type";
my $credentials = shift || confess "Must provide credentials";
if ( ref $credentials && ref $credentials eq 'HASH' ) {
return +{ auth_type => $type, %$credentials };
}
elsif ( ref $credentials && ref $credentials eq 'ARRAY' ) {
my ($username, $password) = @$credentials;
return +{ auth_type => $type, username => $username, password => $password };
}
else {
my ($username, $password) = split ':' => decode_base64( $credentials );
return +{ auth_type => $type, username => $username, password => $password };
}
}
sub new_from_string {
my ($class, $header_string) = @_;
my ($type, $credentials) = split /\s/ => $header_string;
($type eq 'Basic')
|| confess "The type must be 'Basic', not '$type'";
$class->new( $type, $credentials );
}
sub auth_type { (shift)->{'auth_type'} }
sub username { (shift)->{'username'} }
sub password { (shift)->{'password'} }
sub as_string {
my $self = shift;
join ' ' => $self->auth_type, encode_base64( (join ':' => $self->username, $self->password), '' )
}
lib/HTTP/Headers/ActionPack/Authorization/Basic.pm view on Meta::CPAN
=head1 DESCRIPTION
This class represents the Authorization header with the specific
focus on the 'Basic' type.
=head1 METHODS
=over 4
=item C<new ( $type, $credentials )>
The C<$credentials> argument can either be a Base64 encoded string (as
would be passed in via the header), a HASH ref with username and password
keys, or a two element ARRAY ref where the first element is the username
and the second the password.
=item C<new_from_string ( $header_string )>
=item C<auth_type>
=item C<username>
( run in 0.270 second using v1.01-cache-2.11-cpan-4d50c553e7e )