Akamai-Edgegrid
view release on metacpan or search on metacpan
lib/Akamai/Edgegrid.pm view on Meta::CPAN
my ($self, $timestamp) = @_;
my $signing_key = _padded_hmac_sha256_base64($timestamp, $self->{client_secret});
$self->_debug("signing_key: $signing_key");
return $signing_key;
}
sub _canonicalize_headers {
my ($self, $r) = @_;
return join("\t",
map {
my $header_name = lc($_);
my $header_val = $r->header($_);
$header_val =~ s/^\s+//g;
$header_val =~ s/\s+$//g;
$header_val =~ s/\s+/ /g;
"$header_name:$header_val";
} grep {
defined $r->header($_)
lib/Akamai/Edgegrid.pm view on Meta::CPAN
}
sub _make_auth_header {
my ($self, $r, $timestamp, $nonce) = @_;
my @kvps = (
['client_token' => $self->{client_token}],
['access_token' => $self->{access_token}],
['timestamp' => $timestamp],
['nonce' => $nonce]
);
my $auth_header = "EG1-HMAC-SHA256 " . join(';', map {
my ($k,$v) = @$_;
"$k=$v";
} @kvps) . ';';
$self->_debug("unsigned authorization header: $auth_header");
my $signed_auth_header =
$auth_header . 'signature=' . $self->_sign_request($r, $timestamp, $auth_header);
$self->_debug("signed authorization header: $signed_auth_header");
t/02-badinputs.t view on Meta::CPAN
use Test::More;
use Akamai::Edgegrid;
plan tests => 4;
my @required = qw(client_token client_secret access_token);
sub test_missing {
my $missing = shift;
my %args = map { $_ => 'xxx' } grep { $_ ne $missing } @required;
eval {
new Akamai::Edgegrid(%args);
};
if ($@) {
my $msg = $@;
like($msg, qr/^missing required argument $missing/, "missing $missing");
}
}
eval {
( run in 0.501 second using v1.01-cache-2.11-cpan-3b35f9de6a3 )