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.295 second using v1.01-cache-2.11-cpan-65fba6d93b7 )