Module: KeycloakApiRails
- Defined in:
- lib/keycloak-api-rails.rb,
lib/keycloak-api-rails/helper.rb,
lib/keycloak-api-rails/railtie.rb,
lib/keycloak-api-rails/service.rb,
lib/keycloak-api-rails/testing.rb,
lib/keycloak-api-rails/version.rb,
lib/keycloak-api-rails/middleware.rb,
lib/keycloak-api-rails/http_client.rb,
lib/keycloak-api-rails/token_error.rb,
lib/keycloak-api-rails/configuration.rb,
lib/keycloak-api-rails/authentication.rb,
lib/keycloak-api-rails/public_key_resolver.rb,
lib/keycloak-api-rails/public_key_cached_resolver.rb
Defined Under Namespace
Modules: Authentication, Testing
Classes: Configuration, HTTPClient, HTTPError, Helper, InvalidConfigurationError, Middleware, MissingPublicKeysError, PublicKeyCachedResolver, PublicKeyResolver, Railtie, Service, TokenError
Constant Summary
collapse
- MONITOR =
These objects are memoized lazily, on the first request each process serves -- which several
threads of a threaded server reach at the same time. A Monitor rather than a Mutex: the
memoizations nest, 'service' needing 'public_key_resolver', which needs 'http_client'.
Monitor.new
- VERSION =
"2.0.2"
Class Method Summary
collapse
Class Method Details
.config ⇒ Object
42
43
44
|
# File 'lib/keycloak-api-rails.rb', line 42
def self.config
@configuration
end
|
28
29
30
31
32
33
|
# File 'lib/keycloak-api-rails.rb', line 28
def self.configure
MONITOR.synchronize do
yield @configuration ||= KeycloakApiRails::Configuration.new
discard_configured_objects
end
end
|
.load_configuration ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/keycloak-api-rails.rb', line 73
def self.load_configuration
configure do |config|
config.server_url = nil
config.realm_id = nil
config.logger = ::Logger.new(STDOUT)
config.skip_paths = {}
config.opt_in = false
config.token_expiration_tolerance_in_seconds = 10
config.public_key_cache_ttl = 86400
config.custom_attributes = []
config.ca_certificate_file = nil
config.expected_audience = nil
config.expected_token_type = nil
config.verify_not_before = false
config.allow_token_in_query_string = false
config.http_open_timeout = 5
config.http_read_timeout = 5
end
end
|
.logger ⇒ Object
69
70
71
|
# File 'lib/keycloak-api-rails.rb', line 69
def self.logger
config.logger
end
|
.public_key_resolver ⇒ Object
.public_key_resolver=(resolver) ⇒ Object
Mainly used by "keycloak-api-rails/testing" to validate tokens without a Keycloak server.
Assigning nil restores the regular resolver. The memoized service is discarded, since it holds
a reference to the resolver that is being replaced.
57
58
59
60
61
62
63
|
# File 'lib/keycloak-api-rails.rb', line 57
def self.public_key_resolver=(resolver)
MONITOR.synchronize do
@public_key_resolver = resolver
@public_key_resolver_assigned = !resolver.nil?
@service = nil
end
end
|