Fix sample for JWTAsserter (missing .new)

This commit is contained in:
Steven Bazyl 2012-11-02 12:50:06 -07:00
parent 3d157007f6
commit 01fc90b3fc
2 changed files with 18 additions and 4 deletions

View File

@ -84,7 +84,7 @@ For server-to-server interactions, like those between a web application and Goog
client = Google::APIClient.new client = Google::APIClient.new
key = Google::APIClient::PKCS12.load_key('client.p12', 'notasecret') key = Google::APIClient::PKCS12.load_key('client.p12', 'notasecret')
service_account = Google::APIClient::JWTAsserter( service_account = Google::APIClient::JWTAsserter.new(
'123456-abcdef@developer.gserviceaccount.com', '123456-abcdef@developer.gserviceaccount.com',
'https://www.googleapis.com/auth/prediction', 'https://www.googleapis.com/auth/prediction',
key) key)

View File

@ -26,7 +26,7 @@ module Google
# #
# client = Google::APIClient.new # client = Google::APIClient.new
# key = Google::APIClient::PKCS12.load_key('client.p12', 'notasecret') # key = Google::APIClient::PKCS12.load_key('client.p12', 'notasecret')
# service_account = Google::APIClient::JWTAsserter( # service_account = Google::APIClient::JWTAsserter.new(
# '123456-abcdef@developer.gserviceaccount.com', # '123456-abcdef@developer.gserviceaccount.com',
# 'https://www.googleapis.com/auth/prediction', # 'https://www.googleapis.com/auth/prediction',
# key) # key)
@ -109,7 +109,7 @@ module Google
# Pass through to Signet::OAuth2::Client.fetch_access_token # Pass through to Signet::OAuth2::Client.fetch_access_token
# @return [Signet::OAuth2::Client] Access token # @return [Signet::OAuth2::Client] Access token
# #
# @see Signet::OAuth2::Client.fetch_access_token # @see Signet::OAuth2::Client.fetch_access_token!
def authorize(person = nil, options={}) def authorize(person = nil, options={})
assertion = self.to_jwt(person) assertion = self.to_jwt(person)
authorization = Signet::OAuth2::Client.new( authorization = Signet::OAuth2::Client.new(
@ -122,13 +122,27 @@ module Google
end end
end end
##
# Proxy for authorization that allows refreshing the access token
# using assertions instead of refresh tokens.
class JWTAuthorization < DelegateClass(Signet::OAuth2::Client) class JWTAuthorization < DelegateClass(Signet::OAuth2::Client)
##
# Initialize the proxy
#
# @param [Signet::OAuth2::Client] authorization
# Original authorization instance
# @param [Google::APIClient::JWTAsserter]
# Asserter for generating new access tokens
# @param [String] person
# Optional target user if impersonating.
def initialize(authorization, asserter, person = nil) def initialize(authorization, asserter, person = nil)
@asserter = asserter @asserter = asserter
@person = person @person = person
super(authorization) super(authorization)
end end
##
# @see Signet::OAuth2::Client#fetch_access_token!
def fetch_access_token!(options={}) def fetch_access_token!(options={})
new_authorization = @asserter.authorize(@person, options) new_authorization = @asserter.authorize(@person, options)
__setobj__(new_authorization) __setobj__(new_authorization)