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



41
42
43
# File 'lib/openid_token_proxy/token/authentication.rb', line 41

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

#expose_token_expiry_timeObject



37
38
39
# File 'lib/openid_token_proxy/token/authentication.rb', line 37

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

#raw_tokenObject



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

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



26
27
28
29
# File 'lib/openid_token_proxy/token/authentication.rb', line 26

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

#require_valid_tokenObject



31
32
33
34
35
# File 'lib/openid_token_proxy/token/authentication.rb', line 31

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

#set_authentication_url!Object



21
22
23
24
# File 'lib/openid_token_proxy/token/authentication.rb', line 21

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