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

Attributes

client_id[R]
client_secret[R]
ssl_ca_file[R]

Public Class Methods

new(director, env, ssl_ca_file) click to toggle source
# File lib/cli/client/uaa/auth_info.rb, line 12
def initialize(director, env, ssl_ca_file)
  @director = director
  @client_id, @client_secret = env['BOSH_CLIENT'], env['BOSH_CLIENT_SECRET']
  @ssl_ca_file = ssl_ca_file
end

Public Instance Methods

client_auth?() click to toggle source
# File lib/cli/client/uaa/auth_info.rb, line 18
def client_auth?
  if @client_id.nil? && !@client_secret.nil?
    raise ValidationError.new('BOSH_CLIENT is missing')
  end
  if @client_secret.nil? && !@client_id.nil?
    raise ValidationError.new('BOSH_CLIENT_SECRET is missing')
  end

  !@client_id.nil? && !@client_secret.nil?
end
uaa?() click to toggle source
# File lib/cli/client/uaa/auth_info.rb, line 29
def uaa?
  auth_info['type'] == 'uaa'
end
url() click to toggle source
# File lib/cli/client/uaa/auth_info.rb, line 33
def url
  url = auth_info.fetch('options', {}).fetch('url', nil)

  if url
    unless URI.parse(url).instance_of?(URI::HTTPS)
      raise ValidationError.new('HTTPS protocol is required')
    end
  end

  url
end

Private Instance Methods

auth_info() click to toggle source
# File lib/cli/client/uaa/auth_info.rb, line 47
def auth_info
  director_info.fetch('user_authentication', {})
end
director_info() click to toggle source
# File lib/cli/client/uaa/auth_info.rb, line 51
def director_info
  @director_info ||= @director.get_status
rescue Bosh::Cli::AuthError
  {}
end