Class: KeycloakApiRails::PublicKeyCachedResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/keycloak-api-rails/public_key_cached_resolver.rb

Defined Under Namespace

Classes: RealmCache

Constant Summary collapse

FAILED_REFRESH_RETRY_DELAY_IN_SECONDS =
10

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_client, realm_id, public_key_cache_ttl, logger = nil) ⇒ PublicKeyCachedResolver

Returns a new instance of PublicKeyCachedResolver.



58
59
60
61
62
63
64
65
# File 'lib/keycloak-api-rails/public_key_cached_resolver.rb', line 58

def initialize(http_client, realm_id, public_key_cache_ttl, logger = nil)
  @http_client          = http_client
  @realm_id             = realm_id
  @public_key_cache_ttl = public_key_cache_ttl
  @logger               = logger
  @caches               = {}
  @caches_mutex         = Mutex.new
end

Class Method Details

.from_configuration(http_client, configuration) ⇒ Object



67
68
69
# File 'lib/keycloak-api-rails/public_key_cached_resolver.rb', line 67

def self.from_configuration(http_client, configuration)
  new(http_client, configuration.realm_id, configuration.public_key_cache_ttl, configuration.logger)
end

Instance Method Details

#cached_public_key_retrieved_at(realm_id = nil) ⇒ Object

Keep this method backward-compatible for testing



77
78
79
80
# File 'lib/keycloak-api-rails/public_key_cached_resolver.rb', line 77

def cached_public_key_retrieved_at(realm_id = nil)
  target_realm = realm_id || @realm_id
  cache_for(target_realm).cached_public_key_retrieved_at
end

#find_public_keys(realm_id = nil) ⇒ Object



71
72
73
74
# File 'lib/keycloak-api-rails/public_key_cached_resolver.rb', line 71

def find_public_keys(realm_id = nil)
  target_realm = realm_id || @realm_id
  cache_for(target_realm).find_public_keys(@public_key_cache_ttl, @logger)
end