Class: Google::Auth::IAMCredentials

Inherits:
Object
  • Object
show all
Defined in:
lib/googleauth/iam.rb

Overview

Authenticates requests using IAM credentials.

Constant Summary collapse

SELECTOR_KEY =
"x-goog-iam-authority-selector".freeze
TOKEN_KEY =
"x-goog-iam-authorization-token".freeze

Instance Method Summary collapse

Constructor Details

#initialize(selector, token) ⇒ IAMCredentials

Initializes an IAMCredentials.

Parameters:

  • selector

    the IAM selector.

  • token

    the IAM token.

Raises:

  • (TypeError)


32
33
34
35
36
37
# File 'lib/googleauth/iam.rb', line 32

def initialize selector, token
  raise TypeError unless selector.is_a? String
  raise TypeError unless token.is_a? String
  @selector = selector
  @token = token
end

Instance Method Details

#apply(a_hash) ⇒ Object

Returns a clone of a_hash updated with the authoriation header



47
48
49
50
51
# File 'lib/googleauth/iam.rb', line 47

def apply a_hash
  a_copy = a_hash.clone
  apply! a_copy
  a_copy
end

#apply!(a_hash) ⇒ Object

Adds the credential fields to the hash.



40
41
42
43
44
# File 'lib/googleauth/iam.rb', line 40

def apply! a_hash
  a_hash[SELECTOR_KEY] = @selector
  a_hash[TOKEN_KEY] = @token
  a_hash
end

#updater_procObject

Returns a reference to the #apply method, suitable for passing as a closure



55
56
57
# File 'lib/googleauth/iam.rb', line 55

def updater_proc
  proc { |a_hash, _opts = {}| apply a_hash }
end