class HammerCLIForeman::Api::Authenticator
Attributes
auth_type[RW]
settings[RW]
uri[RW]
Public Class Methods
new(auth_type, uri, settings)
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 5 def initialize(auth_type, uri, settings) @auth_type = auth_type @uri = uri @settings = settings end
Public Instance Methods
fetch()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 11 def fetch if ssl_cert_authentication? && !use_basic_auth? void_auth elsif auth_type == AUTH_TYPES[:basic_auth] basic_auth elsif auth_type == AUTH_TYPES[:oauth_password_grant] oauth_password_grant elsif auth_type == AUTH_TYPES[:oauth_authentication_code_grant] oauth_authentication_code_grant end end
Private Instance Methods
basic_auth()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 29 def basic_auth if HammerCLIForeman::Sessions.enabled? authenticator = InteractiveBasicAuth.new( settings.get(:_params, :username) || ENV['FOREMAN_USERNAME'], settings.get(:_params, :password) || ENV['FOREMAN_PASSWORD'] ) SessionAuthenticatorWrapper.new(authenticator, uri, auth_type) else username = settings.get(:_params, :username) || ENV['FOREMAN_USERNAME'] || settings.get(:foreman, :username) password = settings.get(:_params, :password) || ENV['FOREMAN_PASSWORD'] if password.nil? && (username == settings.get(:foreman, :username)) password = settings.get(:foreman, :password) end InteractiveBasicAuth.new(username, password) end end
oauth_authentication_code_grant()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 58 def oauth_authentication_code_grant return unless HammerCLIForeman::Sessions.enabled? authenticator = Oauth::AuthenticationCodeGrant.new( ENV['OIDC_TOKEN_ENDPOINT'] || settings.get(:foreman, :oidc_token_endpoint), ENV['OIDC_AUTHORIZATION_URL'] || settings.get(:foreman, :oidc_authorization_endpoint), ENV['OIDC_CLIENT_ID'] || settings.get(:foreman, :oidc_client_id), ENV['OIDC_REDIRECT_URI'] || settings.get(:foreman, :oidc_redirect_uri) ) SessionAuthenticatorWrapper.new(authenticator, uri, auth_type) end
oauth_password_grant()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 46 def oauth_password_grant return unless HammerCLIForeman::Sessions.enabled? authenticator = Oauth::PasswordGrant.new( ENV['OIDC_TOKEN_ENDPOINT'] || settings.get(:foreman, :oidc_token_endpoint), ENV['OIDC_CLIENT_ID'] || settings.get(:foreman, :oidc_client_id), ENV['OIDC_USERNAME'], ENV['OIDC_PASSWORD'] ) SessionAuthenticatorWrapper.new(authenticator, uri, auth_type) end
ssl_cert_authentication?()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 70 def ssl_cert_authentication? (settings.get(:_params, :ssl_client_cert) || settings.get(:ssl, :ssl_client_cert)) && (settings.get(:_params, :ssl_client_key) || settings.get(:ssl, :ssl_client_key)) end
use_basic_auth?()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 75 def use_basic_auth? settings.get(:_params, :ssl_with_basic_auth) || settings.get(:ssl, :ssl_with_basic_auth) end
void_auth()
click to toggle source
# File lib/hammer_cli_foreman/api/authenticator.rb, line 25 def void_auth VoidAuth.new(_('Using certificate authentication.')) end