Class: OmniauthOpenidFederation::Jwks::Normalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/omniauth_openid_federation/jwks/normalizer.rb

Class Method Summary collapse

Class Method Details

.to_jwks_hash(jwks) ⇒ Hash

Convert JWKS to format expected by JWT gem Handles various input formats: Hash with “keys” or :keys, Array of keys, etc.

Parameters:

  • jwks (Hash, Array, Object)

    JWKS in various formats

Returns:

  • (Hash)

    Normalized JWKS hash with “keys” array (string keys)



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/omniauth_openid_federation/jwks/normalizer.rb', line 14

def self.to_jwks_hash(jwks)
  if jwks.is_a?(Hash) && (jwks.key?("keys") || jwks.key?(:keys))
    # Hash with keys array
    keys = jwks["keys"] || jwks[:keys]
    normalize_keys_array(keys)
  elsif jwks.is_a?(Array)
    # Array of keys
    normalize_keys_array(jwks)
  else
    # Fallback: try to convert to hash
    normalized = Validators.normalize_hash(jwks || {})
    keys = normalized[:keys] || []
    normalize_keys_array(keys)
  end
end