Class: GDS::SSO::ApiAccess

Inherits:
Object
  • Object
show all
Defined in:
lib/gds-sso/api_access.rb

Class Method Summary collapse

Class Method Details

.api_call?(env) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/gds-sso/api_access.rb', line 6

def self.api_call?(env)
  return env["gds_sso.api_call"] unless env["gds_sso.api_call"].nil?
  return true if GDS::SSO::Config.api_only

  if GDS::SSO::Config.api_request_matcher
    request = Rack::Request.new(env)

    gds_sso_api_request_matcher = GDS::SSO::Config.gds_sso_api_request_matcher
    return true if gds_sso_api_request_matcher&.call(request)

    return GDS::SSO::Config.api_request_matcher.call(request)
  end

  !bearer_token(env).nil?
end

.bearer_token(env) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/gds-sso/api_access.rb', line 22

def self.bearer_token(env)
  Rack::Auth::AbstractRequest::AUTHORIZATION_KEYS.each do |key|
    next unless env.key?(key)

    if (match = env[key].match(/\ABearer (.+)/))
      return match[1]
    end
  end

  nil
end