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

refresh() click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 20
def refresh
  get_access_info(true)
  nil
end
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 25
def username
  get_access_info.username
end

Private Instance Methods

client_access_info(force_refresh = false) click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 43
def client_access_info(force_refresh = false)
  if !@access_info.nil? && @access_info.was_issued_for?(@auth_info.client_id)
    @access_info = refresh_if_needed(@access_info, force_refresh)
  else
    @access_info = uaa_client.access_info({})
  end
end
get_access_info(force_refresh = false) click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 31
def get_access_info(force_refresh = false)
  if @auth_info.client_auth?
    client_access_info(force_refresh)
  else
    password_access_info(force_refresh)
  end
end
password_access_info(force_refresh = false) click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 51
def password_access_info(force_refresh = false)
  if @access_info.nil?
    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
  end

  @access_info = refresh_if_needed(@access_info, force_refresh)
end
refresh_if_needed(access_info, force_refresh = false) click to toggle source
# File lib/cli/client/uaa/token_provider.rb, line 63
def refresh_if_needed(access_info, force_refresh = false)
  if access_info.expires_soon? || force_refresh
    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 39
def uaa_client
  @uaa_client ||= Bosh::Cli::Client::Uaa::Client.new(@target, @auth_info, @config)
end