From 526ffc4966debbc3b48efc9896a23514f923cc9d Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Fri, 14 Sep 2018 15:39:24 -0400 Subject: [PATCH] FIX: error in response body to blocked crawlers, showing 500 Internal Server Error with status of 403 --- lib/middleware/anonymous_cache.rb | 2 +- spec/components/middleware/anonymous_cache_spec.rb | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/middleware/anonymous_cache.rb b/lib/middleware/anonymous_cache.rb index 2cd57198767..b31d0b03aef 100644 --- a/lib/middleware/anonymous_cache.rb +++ b/lib/middleware/anonymous_cache.rb @@ -201,7 +201,7 @@ module Middleware if helper.blocked_crawler? env["discourse.request_tracker.skip"] = true - return [403, {}, "Crawler is not allowed!"] + return [403, {}, ["Crawler is not allowed!"]] end if helper.should_force_anonymous? diff --git a/spec/components/middleware/anonymous_cache_spec.rb b/spec/components/middleware/anonymous_cache_spec.rb index de52d9a205f..b27c01c331c 100644 --- a/spec/components/middleware/anonymous_cache_spec.rb +++ b/spec/components/middleware/anonymous_cache_spec.rb @@ -167,7 +167,7 @@ describe Middleware::AnonymousCache::Helper do "PATH_INFO" => path, "REQUEST_PATH" => path }.merge(options[:headers])) - @status = middleware.call(@env).first + @status, @response_header, @response = middleware.call(@env) end it "applies whitelisted_crawler_user_agents correctly" do @@ -184,6 +184,7 @@ describe Middleware::AnonymousCache::Helper do } expect(@status).to eq(403) + expect(@response).to be_an(Array) get '/', headers: non_crawler expect(@status).to eq(200)