Module: OpenIDTokenProxy::Token::Authentication

Extended by:
ActiveSupport::Concern
Defined in:
lib/openid_token_proxy/token/authentication.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#current_tokenObject



39
40
41
# File 'lib/openid_token_proxy/token/authentication.rb', line 39

def current_token
  @current_token ||= OpenIDTokenProxy::Token.decode!(raw_token)
end

#expose_token_expiry_timeObject



35
36
37
# File 'lib/openid_token_proxy/token/authentication.rb', line 35

def expose_token_expiry_time
  response.headers['X-Token-Expiry-Time'] = current_token.expiry_time.iso8601
end

#raw_tokenObject



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/openid_token_proxy/token/authentication.rb', line 43

def raw_token
  token = params[:token]
  return token if token

  authorization = request.headers['Authorization']
  if authorization
    token = authorization[/Bearer (.+)/, 1]
    return token if token
  end

  request.headers['X-Token']
end

#require_authorization(exception) ⇒ Object



24
25
26
27
# File 'lib/openid_token_proxy/token/authentication.rb', line 24

def require_authorization(exception)
  set_authentication_url!
  render json: exception.to_json, status: :unauthorized
end

#require_valid_tokenObject



29
30
31
32
33
# File 'lib/openid_token_proxy/token/authentication.rb', line 29

def require_valid_token
  config = OpenIDTokenProxy.config
  current_token.validate! audience: config.resource,
                          client_id: config.client_id
end

#set_authentication_url!Object



19
20
21
22
# File 'lib/openid_token_proxy/token/authentication.rb', line 19

def set_authentication_url!
  uri = OpenIDTokenProxy.client.authorization_uri
  response.headers['X-Authentication-URL'] = uri
end