Module: Frodo::Concerns::Authentication

Included in:
AbstractClient
Defined in:
lib/frodo/concerns/authentication.rb

Instance Method Summary collapse

Instance Method Details

#authenticate!Object

Public: Force an authentication



7
8
9
10
11
12
13
14
# File 'lib/frodo/concerns/authentication.rb', line 7

def authenticate!
  unless authentication_middleware
    raise AuthenticationError, 'No authentication middleware present'
  end

  middleware = authentication_middleware.new nil, self, options
  middleware.authenticate!
end

#authentication_middlewareObject

Internal: Determines what middleware will be used based on the options provided



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/frodo/concerns/authentication.rb', line 17

def authentication_middleware
  if oauth_refresh?
    return Frodo::Middleware::Authentication::Token
  end
  if password?
    return Frodo::Middleware::Authentication::Password
  end
  if client_credentials?
    return Frodo::Middleware::Authentication::ClientCredentials
  end
end

#client_credentials?Boolean

Internal: Returns true if oauth client_credentials flow should be used for authentication.

Returns:

  • (Boolean)


40
41
42
43
44
# File 'lib/frodo/concerns/authentication.rb', line 40

def client_credentials?
  options[:tenant_id] &&
    options[:client_id] &&
    options[:client_secret]
end

#oauth_refresh?Boolean

Internal: Returns true if oauth token refresh flow should be used for authentication.

Returns:

  • (Boolean)


48
49
50
51
52
# File 'lib/frodo/concerns/authentication.rb', line 48

def oauth_refresh?
  options[:refresh_token] &&
    options[:client_id] &&
    options[:client_secret]
end

#password?Boolean

Internal: Returns true if oauth password grant should be used for authentication.

Returns:

  • (Boolean)


31
32
33
34
35
36
# File 'lib/frodo/concerns/authentication.rb', line 31

def password?
  options[:username] &&
    options[:password] &&
    options[:client_id] &&
    options[:tenant_id]
end