add oauth2 support for Perl

This commit is contained in:
wing328 2015-11-05 16:32:46 +08:00
parent 30a4be833b
commit 4bfc032a64
5 changed files with 17 additions and 8 deletions

View File

@ -323,7 +323,7 @@ sub update_params_for_auth {
}
{{#authMethods}}elsif ($auth eq '{{name}}') {
{{#isApiKey}}{{#isKeyInHeader}}$header_params->{'{{keyParamName}}'} = $self->get_api_key_with_prefix('{{keyParamName}}');{{/isKeyInHeader}}{{#isKeyInQuery}}$query_params->{'{{keyParamName}}'} = $self->get_api_key_with_prefix('{{keyParamName}}');{{/isKeyInQuery}}{{/isApiKey}}{{#isBasic}}$header_params->{'Authorization'} = 'Basic '.encode_base64($WWW::{{moduleName}}::Configuration::username.":".$WWW::{{moduleName}}::Configuration::password);{{/isBasic}}
{{#isOAuth}}# TODO support oauth{{/isOAuth}}
{{#isOAuth}}$header_params->{'Authorization'} = 'Bearer ' . $WWW::{{moduleName}}::Configuration::access_token;{{/isOAuth}}
}
{{/authMethods}}
else {

View File

@ -17,8 +17,12 @@ our $http_user_agent = 'Perl-Swagger';
# authenticaiton setting
our $api_key = {};
our $api_key_prefix = {};
our $username;
our $password;
# username and password for HTTP basic authentication
our $username = '';
our $password = '';
# access token for OAuth
our $access_token = '';
1;

View File

@ -327,7 +327,7 @@ sub update_params_for_auth {
}
elsif ($auth eq 'petstore_auth') {
# TODO support oauth
$header_params->{'Authorization'} = 'Bearer ' . $WWW::SwaggerClient::Configuration::access_token;
}
else {

View File

@ -17,8 +17,12 @@ our $http_user_agent = 'Perl-Swagger';
# authenticaiton setting
our $api_key = {};
our $api_key_prefix = {};
our $username;
our $password;
# username and password for HTTP basic authentication
our $username = '';
our $password = '';
# access token for OAuth
our $access_token = '';
1;

View File

@ -1,4 +1,4 @@
use Test::More tests => 42;
use Test::More tests => 41;
use Test::Exception;
use lib 'lib';
@ -22,7 +22,8 @@ is $store_api->{api_client}->{base_url}, 'http://petstore.swagger.io/v2', 'get t
my $get_inventory_response = $store_api->get_inventory();
like ($get_inventory_response->{pending}, qr/^\d+$/, "pending is numeric");
# comment out pending check as sometimes there's no object with pending status
#like ($get_inventory_response->{pending}, qr/^\d+$/, "pending is numeric");
like ($get_inventory_response->{sold}, qr/^\d+$/, "sold is numeric");
my $pet_json = <<JSON;