normalize client ip
This commit is contained in:
@@ -11,6 +11,7 @@ require 'active_job/railtie'
|
||||
require 'rails/health_controller'
|
||||
|
||||
require_relative '../lib/api_path_consider_json_middleware'
|
||||
require_relative '../lib/normalize_client_ip_middleware'
|
||||
|
||||
Bundler.require(*Rails.groups)
|
||||
|
||||
@@ -32,6 +33,7 @@ module DocuSeal
|
||||
config.action_view.frozen_string_literal = true
|
||||
|
||||
config.middleware.insert_before ActionDispatch::Static, Rack::Deflater
|
||||
config.middleware.insert_before ActionDispatch::Static, NormalizeClientIpMiddleware
|
||||
config.middleware.insert_before ActionDispatch::Static, ApiPathConsiderJsonMiddleware
|
||||
|
||||
config.generators.system_tests = nil
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user