Module: Warden::JWTAuth::EnvHelper

Defined in:
lib/warden/jwt_auth/env_helper.rb

Overview

Helper functions to centralize working with rack env.

It follows [rack](www.rubydoc.info/github/rack/rack/file/SPEC#The_Environment) and [PEP 333](www.python.org/dev/peps/pep-0333/#environ-variables) conventions.

Class Method Summary collapse

Class Method Details

.aud_header(env) ⇒ String

Returns header configured through ‘aud_header` option

Parameters:

  • env (Hash)

    Rack env

Returns:

  • (String)


57
58
59
60
# File 'lib/warden/jwt_auth/env_helper.rb', line 57

def self.aud_header(env)
  header_env_name = env_name(JWTAuth.config.aud_header)
  env[header_env_name]
end

.authorization_header(env) ⇒ String

Returns header configured through ‘token_header` option

Parameters:

  • env (Hash)

    Rack env

Returns:

  • (String)


32
33
34
35
# File 'lib/warden/jwt_auth/env_helper.rb', line 32

def self.authorization_header(env)
  header_env_name = env_name(JWTAuth.config.token_header)
  env[header_env_name]
end

.env_name(header) ⇒ String

Returns the ENV name for a given header

Parameters:

  • header (String)

    Header name

Returns:

  • (String)


66
67
68
# File 'lib/warden/jwt_auth/env_helper.rb', line 66

def self.env_name(header)
  ('HTTP_' + header.upcase).tr('-', '_')
end

.path_info(env) ⇒ String

Returns PATH_INFO environment variable

Parameters:

  • env (Hash)

    Rack env

Returns:

  • (String)


16
17
18
# File 'lib/warden/jwt_auth/env_helper.rb', line 16

def self.path_info(env)
  env['PATH_INFO'] || ''
end

.request_method(env) ⇒ String

Returns REQUEST_METHOD environment variable

Parameters:

  • env (Hash)

    Rack env

Returns:

  • (String)


24
25
26
# File 'lib/warden/jwt_auth/env_helper.rb', line 24

def self.request_method(env)
  env['REQUEST_METHOD']
end

.set_authorization_header(env, value) ⇒ Hash

Returns a copy of ‘env` with value added to the environment variable configured through `token_header` option

Be aware than ‘env` is not modified in place and still an updated copy is returned.

Parameters:

  • env (Hash)

    Rack env

  • value (String)

Returns:

  • (Hash)

    modified rack env



46
47
48
49
50
51
# File 'lib/warden/jwt_auth/env_helper.rb', line 46

def self.set_authorization_header(env, value)
  env = env.dup
  header_env_name = env_name(JWTAuth.config.token_header)
  env[header_env_name] = value
  env
end