Amazon-Credentials

 view release on metacpan or  search on metacpan

ChangeLog  view on Meta::CPAN

Tue Dec 11 12:53:58 2018  Rob Lauer  <rlauer6@comcast.net>

	[1.0.10-1]:
	* configure.ac: bump release
	* cpan/Makefile.am: rename tarball for minor release only
	* src/main/perl/t/02-credentials.t: GMT, not UTC
	* README.md: mention 'make cpan'
	* cpan/extra-files: new

Mon Dec 10 13:44:31 2018  Rob Lauer  <rlauer6@comcast.net>

	[1.0.10]:
	* ChangeLog: new
	* bootstrap: new
	* configure.ac
	- bump minor release

MANIFEST  view on Meta::CPAN

ChangeLog
lib/Amazon/Credentials.pm
Makefile.PL
MANIFEST			This list of files
t/00-credentials.t
t/01-credentials.t
t/02-credentials.t
META.yml                                 Module YAML meta-data (added by MakeMaker)
META.json                                Module JSON meta-data (added by MakeMaker)

META.json  view on Meta::CPAN

{
   "abstract" : "AWS credentials discoverer",
   "author" : [
      "Rob Lauer <rlauer6@comcast.net>"
   ],
   "dynamic_config" : 1,
   "generated_by" : "ExtUtils::MakeMaker version 6.68, CPAN::Meta::Converter version 2.150010",
   "license" : [
      "perl_5"
   ],
   "meta-spec" : {
      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",

META.yml  view on Meta::CPAN

---
abstract: 'AWS credentials discoverer'
author:
  - 'Rob Lauer <rlauer6@comcast.net>'
build_requires:
  Data::Dumper: '2.145'
  Date::Format: '2.24'
  ExtUtils::MakeMaker: '0'
  File::Path: '2.09'
  File::Temp: '0.2301'
  JSON: '2.59'
  Module::Loaded: '0.08'

Makefile.PL  view on Meta::CPAN


use strict;
use warnings;
use ExtUtils::MakeMaker;

WriteMakefile(
    NAME           => 'Amazon::Credentials',
    AUTHOR         => 'Rob Lauer <rlauer6@comcast.net>',
    VERSION_FROM   => 'lib/Amazon/Credentials.pm',
    ABSTRACT       => 'AWS credentials discoverer',
    LICENSE        => 'perl',
    PL_FILES       => {},
    PREREQ_PM      => {
      'Class::Accessor' => '0.31',
      'Data::Dumper' => '2.145',
      'Date::Format' => '2.24',
      'Exporter' => '5.68',
      'File::HomeDir' => '1.00',
      'File::chdir' => '0.1008',
      'HTTP::Request' => '6.00',

lib/Amazon/Credentials.pm  view on Meta::CPAN

use Data::Dumper;
use Date::Format;
use Exporter;
use HTTP::Request;
use JSON;
use LWP::UserAgent;
use POSIX::strptime qw/strptime/;
use Time::Local;
use Scalar::Util qw/reftype/;

use constant  AWS_IAM_SECURITY_CREDENTIALS_URL       => 'http://169.254.169.254/latest/meta-data/iam/security-credentials/';
use constant  AWS_AVAILABILITY_ZONE_URL              => 'http://169.254.169.254/latest/meta-data/placement/availability-zone';
use constant  AWS_CONTAINER_CREDENTIALS_URL          => 'http://169.254.170.2';

use vars qw/$VERSION @EXPORT/;

$VERSION = '1.0.10-1'; $VERSION=~s/\-.*$//;

@EXPORT = qw/$VERSION/;

# we only log at debug level, create a default logger

t/02-credentials.t  view on Meta::CPAN


  use Module::Loaded;

  mark_as_loaded(HTTP::Request);
  mark_as_loaded(HTTP::Response);
  mark_as_loaded(LWP::UserAgent);

  use_ok('Amazon::Credentials');
}

my $home = mkdtemp("amz-credentials-XXXXX");

my $credentials_file = eval {
  mkdir "$home/.aws";
  
  open (my $fh, ">$home/.aws/credentials") or BAIL_OUT("could not create temporary credentials file");
  print $fh <<eot;
[foo]
aws_access_key_id=foo-aws-access-key-id
aws_secret_access_key=foo-aws-secret-access-key

[bar]
aws_access_key_id=bar-aws-access-key-id
aws_secret_access_key=bar-aws-secret-access-key
eot
  close $fh;
  "$home/.aws/credentials";
};

$ENV{HOME} = "$home";
$ENV{AWS_PROFILE} = undef;

my $creds = new Amazon::Credentials({ order => [qw/file/], debug => $ENV{DEBUG} ? 1 : 0 });
ok(ref($creds), 'find credentials');

my %new_creds = (
		 aws_access_key_id     => 'biz-aws-access-key-id',
		 aws_secret_access_key => 'biz-aws-secret-access-key',
		 token                 => 'biz',
		 expiration            => time2str("%Y-%m-%dT%H:%M:%SZ", time + -5 + (5 * 60), "GMT")
		);

$creds->set_credentials(\%new_creds);
ok($creds->is_token_expired, 'is_token_expired() - yes?') or
  diag(Dumper [ $creds->get_expiration(), time2str("%Y-%m-%dT%H:%M:%SZ", time, "GMT")]);

# is_expired() should be true 5 or less minutes before expiration time
$creds->set_expiration(time2str("%Y-%m-%dT%H:%M:%SZ", time + 5 + (5 * 60),"GMT"));
ok(! $creds->is_token_expired, 'is_token_expired() - no?') or
  diag(Dumper [ $creds->get_expiration(), time2str("%Y-%m-%dT%H:%M:%SZ", time, "GMT")]);

# expire token
$creds->set_expiration(time2str("%Y-%m-%dT%H:%M:%SZ", time + -5 + (5 * 60),"GMT"));

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.602 second using v1.00-cache-2.02-grep-82fe00e-cpan-72ae3ad1e6da )