class Doorkeeper::Config
Doorkeeper
option DSL could be reused in extensions to build their own configurations. To use the Option
DSL gems need to define ‘builder_class` method that returns configuration Builder
class. This exception raises when they don’t define it.
Attributes
Public Instance Methods
Doorkeeper
Access Grant model class.
@return [ActiveRecord::Base, Mongoid::Document, Sequel::Model]
# File lib/doorkeeper/config.rb, line 465 def access_grant_model @access_grant_model ||= access_grant_class.constantize end
# File lib/doorkeeper/config.rb, line 586 def access_token_methods @access_token_methods ||= %i[ from_bearer_authorization from_access_token_param from_bearer_param ] end
Doorkeeper
Access Token model class.
@return [ActiveRecord::Base, Mongoid::Document, Sequel::Model]
# File lib/doorkeeper/config.rb, line 457 def access_token_model @access_token_model ||= access_token_class.constantize end
# File lib/doorkeeper/config.rb, line 672 def allow_blank_redirect_uri?(application = nil) if allow_blank_redirect_uri.respond_to?(:call) allow_blank_redirect_uri.call(grant_flows, application) else allow_blank_redirect_uri end end
# File lib/doorkeeper/config.rb, line 680 def allow_grant_flow_for_client?(grant_flow, client) return true unless option_defined?(:allow_grant_flow_for_client) allow_grant_flow_for_client.call(grant_flow, client) end
# File lib/doorkeeper/config.rb, line 477 def api_only @api_only ||= false end
Doorkeeper
Application
model class.
@return [ActiveRecord::Base, Mongoid::Document, Sequel::Model]
# File lib/doorkeeper/config.rb, line 473 def application_model @application_model ||= application_class.constantize end
# File lib/doorkeeper/config.rb, line 548 def application_secret_hashed? instance_variable_defined?(:"@application_secret_strategy") end
# File lib/doorkeeper/config.rb, line 556 def application_secret_strategy @application_secret_strategy ||= ::Doorkeeper::SecretStoring::Plain end
Calculates grant flows configured by the user in Doorkeeper
configuration considering registered aliases that is exposed to single or multiple other flows.
# File lib/doorkeeper/config.rb, line 658 def calculate_grant_flows configured_flows = grant_flows.map(&:to_s) aliases = Doorkeeper::GrantFlow.aliases.keys.map(&:to_s) flows = configured_flows - aliases aliases.each do |flow_alias| next unless configured_flows.include?(flow_alias) flows.concat(Doorkeeper::GrantFlow.expand_alias(flow_alias)) end flows.flatten.uniq end
[NOTE]: deprecated and will be removed soon
# File lib/doorkeeper/config.rb, line 648 def calculate_token_grant_types types = grant_flows - ["implicit"] types << "refresh_token" if refresh_token_enabled? types end
# File lib/doorkeeper/config.rb, line 443 def clear_cache! %i[ application_model access_token_model access_grant_model ].each do |var| remove_instance_variable("@#{var}") if instance_variable_defined?("@#{var}") end end
# File lib/doorkeeper/config.rb, line 582 def client_credentials_methods @client_credentials_methods ||= %i[from_basic from_params] end
# File lib/doorkeeper/config.rb, line 536 def confirm_application_owner? option_set? :confirm_application_owner end
# File lib/doorkeeper/config.rb, line 560 def default_scopes @default_scopes ||= OAuth::Scopes.new end
[NOTE]: deprecated and will be removed soon
# File lib/doorkeeper/config.rb, line 616 def deprecated_token_grant_types_resolver @deprecated_token_grant_types ||= calculate_token_grant_types end
# File lib/doorkeeper/config.rb, line 528 def dynamic_scopes_delimiter @dynamic_scopes_delimiter end
# File lib/doorkeeper/config.rb, line 520 def enable_application_owner? option_set? :enable_application_owner end
# File lib/doorkeeper/config.rb, line 524 def enable_dynamic_scopes? option_set? :enable_dynamic_scopes end
# File lib/doorkeeper/config.rb, line 594 def enabled_grant_flows @enabled_grant_flows ||= calculate_grant_flows.map { |name| Doorkeeper::GrantFlow.get(name) }.compact end
# File lib/doorkeeper/config.rb, line 516 def enforce_configured_scopes? option_set? :enforce_configured_scopes end
# File lib/doorkeeper/config.rb, line 481 def enforce_content_type @enforce_content_type ||= false end
# File lib/doorkeeper/config.rb, line 512 def force_pkce? option_set? :force_pkce end
# File lib/doorkeeper/config.rb, line 686 def option_defined?(name) instance_variable_defined?("@#{name}") end
# File lib/doorkeeper/config.rb, line 564 def optional_scopes @optional_scopes ||= OAuth::Scopes.new end
# File lib/doorkeeper/config.rb, line 576 def pkce_code_challenge_methods_supported return [] unless access_grant_model.pkce_supported? pkce_code_challenge_methods end
# File lib/doorkeeper/config.rb, line 532 def polymorphic_resource_owner? option_set? :polymorphic_resource_owner end
# File lib/doorkeeper/config.rb, line 540 def raise_on_errors? handle_auth_errors == :raise end
# File lib/doorkeeper/config.rb, line 544 def redirect_on_errors? handle_auth_errors == :redirect end
# File lib/doorkeeper/config.rb, line 485 def refresh_token_enabled? if defined?(@refresh_token_enabled) @refresh_token_enabled else false end end
# File lib/doorkeeper/config.rb, line 493 def resolve_controller(name) config_option = public_send(:"#{name}_controller") controller_name = if config_option.respond_to?(:call) instance_exec(&config_option) else config_option end controller_name.constantize end
# File lib/doorkeeper/config.rb, line 504 def revoke_previous_client_credentials_token? option_set? :revoke_previous_client_credentials_token end
# File lib/doorkeeper/config.rb, line 568 def scopes @scopes ||= default_scopes + optional_scopes end
# File lib/doorkeeper/config.rb, line 572 def scopes_by_grant_type @scopes_by_grant_type ||= {} end
# File lib/doorkeeper/config.rb, line 603 def token_grant_flows @token_grant_flows ||= calculate_token_grant_flows end
# File lib/doorkeeper/config.rb, line 611 def token_grant_types token_grant_flows.map(&:grant_type_matches) end
# File lib/doorkeeper/config.rb, line 552 def token_secret_strategy @token_secret_strategy ||= ::Doorkeeper::SecretStoring::Plain end
Private Instance Methods
# File lib/doorkeeper/config.rb, line 698 def calculate_token_grant_flows flows = enabled_grant_flows.select(&:handles_grant_type?) flows << Doorkeeper::GrantFlow.get("refresh_token") if refresh_token_enabled? flows end
Helper to read boolearized configuration option
# File lib/doorkeeper/config.rb, line 693 def option_set?(instance_key) var = instance_variable_get("@#{instance_key}") !!(defined?(var) && var) end