From 43a59ab4e78a8228a9ad508f9e6da543300d60c1 Mon Sep 17 00:00:00 2001 From: Purintai Date: Wed, 28 Feb 2024 13:51:52 +0900 Subject: [PATCH] Pre-check whether rewind method is defined Rack::Input is no longer required to be rewindable in Rack 3 https://github.com/rack/rack/blob/dff6cfd249832d32ab190e6d20605bce0d6c702d/UPGRADE-GUIDE.md#rackinput-is-no-longer-required-to-be-rewindable --- lib/better_errors/middleware.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/better_errors/middleware.rb b/lib/better_errors/middleware.rb index 34b5efa7..4b794da1 100644 --- a/lib/better_errors/middleware.rb +++ b/lib/better_errors/middleware.rb @@ -169,7 +169,7 @@ def internal_call(env, id, method) request = Rack::Request.new(env) return invalid_csrf_token_json_response unless request.cookies[CSRF_TOKEN_COOKIE_NAME] - request.body.rewind + request.body.rewind if defined?(request.body.rewind) body = JSON.parse(request.body.read) return invalid_csrf_token_json_response unless request.cookies[CSRF_TOKEN_COOKIE_NAME] == body['csrfToken']