mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
367 B
17 lines
367 B
# frozen_string_literal: true
|
|
|
|
class NormalizeClientIpMiddleware
|
|
def initialize(app)
|
|
@app = app
|
|
end
|
|
|
|
def call(env)
|
|
if env['HTTP_CLIENT_IP'].present? && env['HTTP_X_CLIENT_IP'].present? &&
|
|
env['HTTP_CLIENT_IP'].starts_with?("#{env['HTTP_X_CLIENT_IP']}:")
|
|
env['HTTP_CLIENT_IP'] = env['HTTP_X_CLIENT_IP']
|
|
end
|
|
|
|
@app.call(env)
|
|
end
|
|
end
|