Class: OIDC::Service
Constant Summary
collapse
- STATSD_KEY_PREFIX =
'oidc'
Instance Method Summary
collapse
#with_monitoring
configuration, #raise_backend_exception
#log_exception_to_sentry, #log_message_to_sentry, #non_nil_hash?, #normalize_level, #rails_logger
Instance Method Details
#call_no_token(action, url) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/oidc/service.rb', line 15
def call_no_token(action, url)
connection.send(action) do |req|
req.url url
req.['Content-Type'] = 'application/json'
req.['Accept'] = 'application/json'
end
end
|
46
47
48
49
50
51
52
53
54
|
# File 'lib/oidc/service.rb', line 46
def get_metadata_endpoint(iss)
metadata_endpoint = Settings.oidc.issuers.find { |s| iss.downcase.start_with? s['prefix'].downcase }
unless valid_metadata_config?(metadata_endpoint)
raise Common::Exceptions::OpenIdServiceError.new(detail: 'Unauthorized Issuer', code: 401, status: 401)
end
proxied_iss = iss.gsub(metadata_endpoint['prefix'], metadata_endpoint['proxy'])
proxied_iss + metadata_endpoint['metadata']
end
|
23
24
25
26
27
28
29
30
31
|
# File 'lib/oidc/service.rb', line 23
def metadata(iss)
metadata_endpoint = get_metadata_endpoint(iss)
with_monitoring do
OIDC::Response.new call_no_token('get', metadata_endpoint)
rescue
raise Common::Exceptions::OpenIdServiceError.new(detail: 'Issuer not found', code: 404, status: 404)
end
end
|
#oidc_jwks_keys(iss) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/oidc/service.rb', line 33
def oidc_jwks_keys(iss)
url = metadata(iss).body['jwks_uri']
if url.nil?
raise Common::Exceptions::OpenIdServiceError.new(detail: 'Issuer keys not found', code: 404, status: 404)
end
with_monitoring do
call_no_token('get', url)
rescue
raise Common::Exceptions::OpenIdServiceError.new(detail: 'JWKS not found', code: 404, status: 404)
end
end
|