class SentryRealIp::Middleware

Public Class Methods

new(app) click to toggle source
# File lib/sentry_real_ip/middleware.rb, line 3
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/sentry_real_ip/middleware.rb, line 7
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 Instance Methods

determine_real_ip(env) click to toggle source
# File lib/sentry_real_ip/middleware.rb, line 18
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