Sha256: 5b02345e7a629d11c63bce3eb8e257bd7c04fc739a2458d344a025cef42591c7

Contents?: true

Size: 700 Bytes

Versions: 4

Compression:

Stored size: 700 Bytes

Contents

# frozen_string_literal: true

module Keycard::Request
  # This request wrapper should be used when the application will be served
  # behind a reverse proxy. It relies on the trusted relationship with the
  # proxy to use HTTP headers for forwarded values.
  #
  # The typical headers forwarded are X-Forwarded-User and X-Forwarded-For,
  # which, somewhat confusingly, are transposed into HTTP_X_REMOTE_USER and
  # HTTP_X_FORWARDED_FOR once the Rack request is assembled.
  class ProxiedAttributes < Attributes
    def user_pid
      get 'HTTP_X_REMOTE_USER'
    end

    def user_eid
      user_pid
    end

    def client_ip
      safe('HTTP_X_FORWARDED_FOR').split(',').first
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
keycard-0.3.4 lib/keycard/request/proxied_attributes.rb
keycard-0.3.3 lib/keycard/request/proxied_attributes.rb
keycard-0.3.2 lib/keycard/request/proxied_attributes.rb
keycard-0.3.1 lib/keycard/request/proxied_attributes.rb