Module: Clavis

Defined in:
lib/clavis.rb,
lib/clavis.rb,
lib/clavis/engine.rb,
lib/clavis/errors.rb,
lib/clavis/logging.rb,
lib/clavis/version.rb,
lib/clavis/view_helpers.rb,
lib/clavis/configuration.rb,
lib/clavis/oauth_identity.rb,
lib/clavis/providers/base.rb,
lib/clavis/providers/apple.rb,
lib/clavis/providers/github.rb,
lib/clavis/providers/google.rb,
lib/clavis/providers/generic.rb,
lib/clavis/utils/nonce_store.rb,
lib/clavis/utils/state_store.rb,
lib/clavis/providers/facebook.rb,
lib/clavis/utils/secure_token.rb,
lib/clavis/providers/microsoft.rb,
lib/clavis/user_info_normalizer.rb,
lib/clavis/security/rate_limiter.rb,
lib/clavis/security/token_storage.rb,
lib/clavis/security/https_enforcer.rb,
lib/clavis/security/csrf_protection.rb,
lib/clavis/security/input_validator.rb,
lib/clavis/security/session_manager.rb,
lib/clavis/security/parameter_filter.rb,
app/controllers/clavis/auth_controller.rb,
lib/generators/clavis/install_generator.rb,
lib/clavis/security/redirect_uri_validator.rb,
lib/clavis/providers/token_exchange_handler.rb,
lib/clavis/controllers/concerns/authentication.rb,
lib/clavis/models/concerns/oauth_authenticatable.rb,
lib/clavis/controllers/concerns/session_management.rb,
lib/generators/clavis/controller/controller_generator.rb,
lib/generators/clavis/user_method/user_method_generator.rb

Overview

This file is kept for backward compatibility The functionality has been moved to Clavis::Security::CsrfProtection

Defined Under Namespace

Modules: Controllers, Generators, Logging, Models, Providers, Security, Utils, ViewHelpers Classes: AuthController, AuthenticationError, AuthorizationDenied, AuthorizationError, Configuration, ConfigurationError, Engine, Error, ExpiredState, ExpiredToken, InsufficientScope, InvalidAccessToken, InvalidButton, InvalidClient, InvalidConfiguration, InvalidGrant, InvalidHostedDomain, InvalidNonce, InvalidRedirectUri, InvalidResponse, InvalidScope, InvalidState, InvalidToken, MissingConfiguration, MissingNonce, MissingState, OAuthError, OauthIdentity, ProviderAPIError, ProviderError, ProviderNotConfigured, TokenError, UnauthorizedClient, UnsupportedGrantType, UnsupportedOperation, UnsupportedProvider, UserCreationFailed, UserError, UserInfoNormalizer, UserNotFound, ViewError

Constant Summary collapse

VERSION =

The current version of Clavis.

"0.8.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



70
71
72
# File 'lib/clavis.rb', line 70

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



65
66
67
68
# File 'lib/clavis.rb', line 65

def configure
  yield(configuration) if block_given?
  configuration.post_initialize
end

.loggerObject

Define logger methods manually instead of using delegate



115
116
117
# File 'lib/clavis.rb', line 115

def logger
  Logging.logger
end

.logger=(value) ⇒ Object



119
120
121
# File 'lib/clavis.rb', line 119

def logger=(value)
  Logging.logger = value
end

.provider(name, options = {}) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/clavis.rb', line 78

def provider(name, options = {})
  name = name.to_sym

  provider_class = provider_registry[name] ||
                   case name
                   when :google
                     Providers::Google
                   when :github
                     Providers::Github
                   when :facebook
                     Providers::Facebook
                   when :apple
                     Providers::Apple
                   when :microsoft
                     Providers::Microsoft
                   when :generic
                     Providers::Generic
                   else
                     raise UnsupportedProvider, name
                   end

  # Merge options with configuration
  config = configuration.providers[name] || {}
  config = config.merge(options)

  provider_class.new(config)
end

.provider_registryObject



110
111
112
# File 'lib/clavis.rb', line 110

def provider_registry
  @provider_registry ||= {}
end

.register_provider(name, provider_class) ⇒ Object



106
107
108
# File 'lib/clavis.rb', line 106

def register_provider(name, provider_class)
  provider_registry[name.to_sym] = provider_class
end

.reset_configuration!Object



74
75
76
# File 'lib/clavis.rb', line 74

def reset_configuration!
  @configuration = Configuration.new
end

.setup {|configuration| ... } ⇒ Object

Yields:



123
124
125
126
127
# File 'lib/clavis.rb', line 123

def self.setup
  yield(configuration) if block_given?
  configuration.post_initialize
  self
end