Class: Aspera::Cli::Plugins::Oauth
- Defined in:
- lib/aspera/cli/plugins/oauth.rb
Overview
base class for applications supporting OAuth 2.0 authentication
Constant Summary collapse
- AUTH_TYPES =
OAuth methods supported
i[web jwt boot].freeze
- AUTH_OPTIONS =
Options used for authentication
i[url auth client_id client_secret redirect_uri private_key passphrase username password].freeze
Constants inherited from Base
Base::ALL_OPS, Base::GLOBAL_OPS, Base::INSTANCE_OPS, Base::MAX_ITEMS, Base::MAX_PAGES
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#initialize(**_) ⇒ Oauth
constructor
A new instance of Oauth.
-
#new_with_options(klass, kwargs: {}, option: {}) ⇒ Object
Get command line options specified by
AUTH_OPTIONSandoption.keys(value is default).
Methods inherited from BasicAuth
#basic_auth_api, #basic_auth_params, declare_options
Methods inherited from Base
#add_manual_header, #config, declare_options, #do_bulk_operation, #entity_execute, #formatter, #instance_identifier, #list_entities_limit_offset_total_count, #lookup_entity_by_field, #lookup_entity_generic, #options, percent_selector, #persistency, #query_read_delete, #transfer, #value_create_modify
Constructor Details
#initialize(**_) ⇒ Oauth
Returns a new instance of Oauth.
14 15 16 17 18 19 20 21 22 |
# File 'lib/aspera/cli/plugins/oauth.rb', line 14 def initialize(**_) super .declare(:auth, 'OAuth type of authentication', allowed: AUTH_TYPES, default: :jwt) .declare(:client_id, 'OAuth client identifier') .declare(:client_secret, 'OAuth client secret') .declare(:redirect_uri, 'OAuth (Web) redirect URI for web authentication') .declare(:private_key, 'OAuth (JWT) RSA private key PEM value (prefix file path with @file:)') .declare(:passphrase, 'OAuth (JWT) RSA private key passphrase') end |
Instance Method Details
#new_with_options(klass, kwargs: {}, option: {}) ⇒ Object
Get command line options specified by AUTH_OPTIONS and option.keys (value is default). Adds those not nil to the kwargs. Instantiate the provided klass with those kwargs. option can specify a default value (not nil)
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/aspera/cli/plugins/oauth.rb', line 33 def (klass, kwargs: {}, option: {}) klass.new(** (AUTH_OPTIONS + option.keys).each_with_object(kwargs) do |i, m| v = .get_option(i) m[i] = v unless v.nil? m[i] = option[i] unless !m[i].nil? || option[i].nil? end) rescue ::ArgumentError => e if (m = e..match(/missing keyword: :(.*)$/)) raise Cli::Error, "Missing option: #{m[1]}" end raise end |