Fix ActionCable load error due to custom inflection for middleware
This commit is contained in:
27
lib/middleware/web_socket_sentry_headers.rb
Normal file
27
lib/middleware/web_socket_sentry_headers.rb
Normal file
@ -0,0 +1,27 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Middleware
|
||||
class WebSocketSentryHeaders
|
||||
def initialize(app)
|
||||
@app = app
|
||||
end
|
||||
|
||||
def call(env)
|
||||
request = Rack::Request.new(env)
|
||||
extract_sentry_parameters(request) if websocket_upgrade?(request)
|
||||
@app.call(env)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def websocket_upgrade?(request)
|
||||
request.has_header?('HTTP_SEC_WEBSOCKET_VERSION')
|
||||
end
|
||||
|
||||
def extract_sentry_parameters(request)
|
||||
%w[HTTP_SENTRY_TRACE HTTP_BAGGAGE].each do |param|
|
||||
request.add_header(param, request.delete_param(param))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user