class Bosh::Cli::Client::Uaa::TokenProvider

Public Class Methods

new(auth_info, config, token_decoder, target) click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 8
def initialize(auth_info, config, token_decoder, target)
  @auth_info = auth_info
  @config = config
  @token_decoder = token_decoder
  @target = target
end

Public Instance Methods

token() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 15
def token
  access_info = get_access_info
  access_info.auth_header if access_info
end
username() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 20
def username
  get_access_info.username
end

Private Instance Methods

client_access_info() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 38
def client_access_info
  if !@client_access_info.nil? && @client_access_info.was_issued_for?(@auth_info.client_id)
    @client_access_info = refresh_if_needed(@client_access_info)
  else
    @client_access_info = uaa_client.access_info({})
  end
end
get_access_info() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 26
def get_access_info
  if @auth_info.client_auth?
    client_access_info
  else
    password_access_info
  end
end
password_access_info() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 46
def password_access_info
  config_access_token = @config.access_token(@target)
  return nil unless config_access_token

  access_info = PasswordAccessInfo.create(config_access_token, @config.refresh_token(@target), @token_decoder)
  return nil unless access_info

  refresh_if_needed(access_info)
end
refresh_if_needed(access_info) click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 56
def refresh_if_needed(access_info)
  if access_info.expires_soon?
    uaa_client.refresh(access_info)
  else
    access_info
  end
end
uaa_client() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 34
def uaa_client
  @uaa_client ||= Bosh::Cli::Client::Uaa::Client.new(@target, @auth_info, @config)
end