class HammerCLIForeman::Api::Oauth::PasswordGrant
Attributes
oidc_client_id[RW]
oidc_token_endpoint[RW]
password[RW]
token[RW]
user[RW]
Public Class Methods
new(oidc_token_endpoint, oidc_client_id, user, password)
click to toggle source
Calls superclass method
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 9 def initialize(oidc_token_endpoint, oidc_client_id, user, password) @oidc_token_endpoint = oidc_token_endpoint @oidc_client_id = oidc_client_id @user = user @password = password super set_token(oidc_token_endpoint, oidc_client_id, user, password) end
Public Instance Methods
authenticate(request, token)
click to toggle source
Calls superclass method
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 17 def authenticate(request, token) if HammerCLI.interactive? set_token_interactively end super end
error(ex)
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 41 def error(ex) if ex.is_a?(RestClient::InternalServerError) @user = @password = @oidc_token_endpoint = @oidc_client_id = nil original_message = _("Invalid credentials or oidc-client-id or oidc-token-endpoint.\n") begin message = JSON.parse(ex.response.body)['error']['message'] rescue end UnauthorizedError.new(original_message << message) end end
set_token(input_oidc_token_endpoint, input_oidc_client_id, input_user, input_password)
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 28 def set_token(input_oidc_token_endpoint, input_oidc_client_id, input_user, input_password) @oidc_token_endpoint = input_oidc_token_endpoint if input_oidc_token_endpoint @user = input_user @password = input_password @oidc_client_id = input_oidc_client_id if input_oidc_client_id if @user && @password && @oidc_token_endpoint && @oidc_client_id @token = HammerCLIForeman::OpenidConnect.new( @oidc_token_endpoint, @oidc_client_id).get_token(@user, @password) else @token = nil end end
set_token_interactively()
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 24 def set_token_interactively @token ||= set_token(get_oidc_token_endpoint, get_oidc_client_id, get_user, get_password) end
Private Instance Methods
ask_user(prompt, silent=false)
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 71 def ask_user(prompt, silent=false) if silent HammerCLI.interactive_output.ask(prompt) { |q| q.echo = false } else HammerCLI.interactive_output.ask(prompt) end end
get_oidc_client_id()
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 67 def get_oidc_client_id @oidc_client_id ||= ask_user(_("Client ID:%s") % " ") end
get_oidc_token_endpoint()
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 63 def get_oidc_token_endpoint @oidc_token_endpoint ||= ask_user(_("Openidc Provider Token Endpoint:%s") % " ") end
get_password()
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 59 def get_password @password ||= ask_user(_("Password:%{wsp}") % {:wsp => " "}, true) end
get_user()
click to toggle source
# File lib/hammer_cli_foreman/api/oauth/password_grant.rb, line 55 def get_user @user ||= ask_user(_("Username:%s") % " ") end