Akamai-Open-Client
view release on metacpan or search on metacpan
lib/Akamai/Open/Request/EdgeGridV1.pm view on Meta::CPAN
my $headers = $self->signed_headers;
$self->request->header($_ => $headers->{$_}) foreach(keys(%{$headers}));
}
};
sub sign_request {
my $self = shift;
# to create a valid auth header, we'll need
# the http request method (i.e. GET, POST, PUT)
my $http_method = $self->request->method;
# the http scheme in lowercases (i.e. http or https)
my $http_scheme = $self->request->uri->scheme;
# the http host header
my $http_host = $self->request->uri->host;
# the encoded uri including the query string if present
my $http_uri = $self->request->uri->path_query;
# the canonicalized headers which are choosed for signing
my $http_headers = $self->canonicalize_headers;
# the content hash for POST/PUT requests
my $content_hash = $self->content_hash;
# and the authorization header content
my $auth_header = sprintf('%s %s;', EDGEGRIDV1ALGO,
join(';', CLIENT_TOKEN . $self->client->client_token,
ACCESS_TOKEN . $self->client->access_token,
TIMESTAMP_TOKEN . $self->timestamp,
NONCE_TOKEN . $self->nonce));
# now create the token to sign
my $token = join("\t", $http_method, $http_scheme, $http_host, $http_uri, $http_headers, $content_hash, $auth_header);
t/testdata.json view on Meta::CPAN
{"Host": "akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net"},
{"X-Test2": "t2"},
{"X-Test1": "t1"},
{"X-Test3": "t3"},
{"X-Extra": "this won't be included"}
]
},
"expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=Knd/jc...
},
{
"testName": "PUT test",
"request": {
"method": "PUT",
"path": "/testapi/v1/t6",
"data": "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"
},
"expectedAuthorization": "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=GNBWEY...
}
]
}
( run in 0.332 second using v1.01-cache-2.11-cpan-4e96b696675 )