WebService-Xero
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/WebService/Xero/Agent/PrivateApplication.pm view on Meta::CPAN
sub _validate_agent
{
my ( $self ) = @_;
return $self->_error('CONSUMER_KEY not valid') unless ( $self->{CONSUMER_KEY} =~ /.{20,}/m ); ## min 20 chars - 30 is typical
return $self->_error('CONSUMER_SECRET not valid') unless ( $self->{CONSUMER_SECRET} =~ /.{20,}/m ); ## min 20 chars - 30 is typical
# KEYFILE
# PRIVATE_KEY
if ( not defined $self->{pko} and $self->{PRIVATE_KEY} =~ /BEGIN RSA PRIVATE KEY/smg )
{
$self->{pko} = Crypt::OpenSSL::RSA->new_private_key( $self->{PRIVATE_KEY} ) || return $self->_error('PRIVATE_KEY not valid');
## TODO - sort out catching error - currently crashes if fails not return undef
## could try to catch the error .. eg. RSA.xs:178: OpenSSL error: too long
## FROM Crypt::OpenSSL::RSA docs
# NOTE: Many of the methods in this package can croak, so use eval, or
# Error.pm's try/catch mechanism to capture errors. Also, while some
# methods from earlier versions of this package return true on success,
# this (never documented) behavior is no longer the case.
}
$self->{_status} = 'RSA KEY SET';
return $self->_error('PRIVATE_KEY unable to create a valid RSA:' . ref($self->{pko}) ) unless ( ref($self->{pko}) eq 'Crypt::OpenSSL::RSA' );
t/01-agent.t view on Meta::CPAN
## SKIP PRIVATE APPLICATION UNLESS VALID KEY FILE PROVIDED IN CONFIG
diag(' --- SKIPPING PRIVATE API CONFIG - KEYFILE NOT FOUND') unless (-e $config->{PRIVATE_APPLICATION}{KEYFILE} );
SKIP: {
skip("no Private API config",7) unless (-e $config->{PRIVATE_APPLICATION}{KEYFILE} );
#ok( $config->{PRIVATE_APPLICATION}{CONSUMER_KEY} ne 'YOUR_OAUTH_CONSUMER_KEY', 'Private API Consumer key not left as default' );
ok ( my $pk_text = read_file( $config->{PRIVATE_APPLICATION}{KEYFILE} ), 'load private key file');
ok ( my $pko = Crypt::OpenSSL::RSA->new_private_key( $pk_text ), 'Generate RSA Object from private key file' );
ok ( my $xero = WebService::Xero::Agent::PrivateApplication->new(
NAME => $config->{PRIVATE_APPLICATION}{NAME},
CONSUMER_KEY => $config->{PRIVATE_APPLICATION}{CONSUMER_KEY},
CONSUMER_SECRET => $config->{PRIVATE_APPLICATION}{CONSUMER_SECRET},
# KEYFILE => $config->{PRIVATE_APPLICATION}{KEYFILE},
PRIVATE_KEY => $pk_text,
), 'New Xero Private Application Agent' );
note( $xero->as_text() );
## TEST GET PRODUCTS
ok( my $products = $xero->get_all_xero_products_from_xero(), 'Get live products' );
t/02-private_application.t view on Meta::CPAN
ukD2jKyHqWIdU/3tM3iP1b8CY6JyVyhOjwJBAJ/NmDMKohnJn9bcKxOpJ/HiypIh
8sQzcZY4W5QEYTLKHJ7HV08brXFh6VvV12bL2q1HmLAEb69bll2P2Gve+k8CQQC3
1Pi4lxwl1FKSjlsvMUrDSm01Mbw34YM0UlP/0W2XwoWx4MYB2p7ifrTAHQCh4IoF
64wSAqOADEI9w/F5SBiVAkBJVt3jNObeieMfxVU/NOtajXX51sDUj3XCIWPPui8i
IKzzVn7G0kH+/TqtTPdizrDJkg/rsnrTpvHi8eeMZlAy
-----END RSA PRIVATE KEY-----';
## test a valid although unusable configuration
ok( my $xero = WebService::Xero::Agent::PrivateApplication->new( CONSUMER_KEY => 'CKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCKCK',
CONSUMER_SECRET => 'CSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCSCS',
#KEYFILE => "/Users/peter/gc-drivers/conf/xero_private_key.pem"
PRIVATE_KEY => $fake_key, ) , 'New Xero Private Application Agent' );
is( ref($xero), 'WebService::Xero::Agent::PrivateApplication', 'created Xero object is the right type' );
like ( $xero->as_text(), qr/WebService::Xero::Agent::PrivateApplication/, 'as_text()' );
is( $xero->get_all_xero_products_from_xero(), undef, "attempt to get from xero fails with invalid credentials" );
#WebService
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.727 second using v1.00-cache-2.02-grep-82fe00e-cpan-2cc899e4a130 )