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

Public Class Methods

new(target, auth_info, config) click to toggle source
# File lib/cli/client/uaa/client.rb, line 12
def initialize(target, auth_info, config)
  @target = target
  @auth_info = auth_info
  token_decoder = TokenDecoder.new
  if auth_info.client_auth?
    token_issuer = ClientTokenIssuer.new(auth_info, token_decoder)
  else
    token_issuer = PasswordTokenIssuer.new(auth_info, token_decoder)
  end
  @ssl_ca_file = auth_info.ssl_ca_file
  @token_issuer = token_issuer
  @config = config
end

Public Instance Methods

access_info(prompt_responses) click to toggle source
# File lib/cli/client/uaa/client.rb, line 33
def access_info(prompt_responses)
  with_save { @token_issuer.access_info(prompt_responses) }
rescue CF::UAA::TargetError => e
  err("Failed to log in: #{e.info['error_description']}")
rescue CF::UAA::BadResponse
  nil
end
prompts() click to toggle source
# File lib/cli/client/uaa/client.rb, line 26
def prompts
  @token_issuer.prompts
rescue CF::UAA::SSLException => e
  raise e unless @ssl_ca_file.nil?
  err('Invalid SSL Cert. Use --ca-cert option when setting target to specify SSL certificate')
end
refresh(access_info) click to toggle source
# File lib/cli/client/uaa/client.rb, line 41
def refresh(access_info)
  @token_issuer.refresh(access_info)
rescue CF::UAA::TargetError
  nil
end

Private Instance Methods

with_save() { || ... } click to toggle source
# File lib/cli/client/uaa/client.rb, line 49
def with_save
  access_info = yield
  if access_info.auth_header && !@auth_info.client_auth?
    @config.set_credentials(@target, access_info.to_hash)
    @config.save
  end

  access_info
end