Sha256: 4f99d520bfe0e0eb5725467517b2137e488858a32bfea0e2918cebe959f21c2c

Contents?: true

Size: 515 Bytes

Versions: 3

Compression:

Stored size: 515 Bytes

Contents

module SentryRealIp
  class Middleware
    def initialize(app)
      @app = app
    end

    def call(env)
      real_ip = determine_real_ip(env)
      if real_ip
        user_context = { ip_address: real_ip }.merge(Raven.context.user)
        Raven.user_context(user_context)
      end
      @app.call(env)
    end

    private

    def determine_real_ip(env)
      real_ip = env['HTTP_X_FORWARDED_FOR'] || env['HTTP_X_REAL_IP']
      real_ip.split(',').first.strip if real_ip && !real_ip.empty?
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sentry_real_ip-1.1.2 lib/sentry_real_ip/middleware.rb
sentry_real_ip-1.1.1 lib/sentry_real_ip/middleware.rb
sentry_real_ip-1.1.0 lib/sentry_real_ip/middleware.rb