Sha256: 1e5cf2ce6b72dffb7a784050634f6693a7566ddf55e397b4269b35685a782202

Contents?: true

Size: 1.66 KB

Versions: 11

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

module Warden
  module JWTAuth
    # Helper functions to centralize working with rack env.
    #
    # It follows
    # [rack](http://www.rubydoc.info/github/rack/rack/file/SPEC#The_Environment)
    # and [PEP 333](https://www.python.org/dev/peps/pep-0333/#environ-variables)
    # conventions.
    module EnvHelper
      # Returns PATH_INFO environment variable
      #
      # @param env [Hash] Rack env
      # @return [String]
      def self.path_info(env)
        env['PATH_INFO'] || ''
      end

      # Returns REQUEST_METHOD environment variable
      #
      # @param env [Hash] Rack env
      # @return [String]
      def self.request_method(env)
        env['REQUEST_METHOD']
      end

      # Returns HTTP_AUTHORIZATION environment variable
      #
      # @param env [Hash] Rack env
      # @return [String]
      def self.authorization_header(env)
        env['HTTP_AUTHORIZATION']
      end

      # Returns a copy of `env` with value added to the `HTTP_AUTHORIZATION`
      # environment variable.
      #
      # Be aware than `env` is not modified in place and still an updated copy
      # is returned.
      #
      # @param env [Hash] Rack env
      # @param value [String]
      # @return [Hash] modified rack env
      def self.set_authorization_header(env, value)
        env = env.dup
        env['HTTP_AUTHORIZATION'] = value
        env
      end

      # Returns header configured through `aud_header` option
      #
      # @param env [Hash] Rack env
      # @return [String]
      def self.aud_header(env)
        env_name = ('HTTP_' + JWTAuth.config.aud_header.upcase).tr('-', '_')
        env[env_name]
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
warden-jwt_auth-0.9.0 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.8.0 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.7.0 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.6.0 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.5.0 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.4.2 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.4.1 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.4.0 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.3.6 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.3.5 lib/warden/jwt_auth/env_helper.rb
warden-jwt_auth-0.3.2 lib/warden/jwt_auth/env_helper.rb