Skip to content
Snippets Groups Projects
Commit 10b2383f authored by George Koltsov's avatar George Koltsov
Browse files

Exclude json content type from workhorse interception

parent ab006779
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -116,7 +116,7 @@ class ApplicationController < ActionController::Base
def render(*args)
super.tap do
# Set a header for custom error pages to prevent them from being intercepted by gitlab-workhorse
if response.content_type == 'text/html' && (400..599).cover?(response.status)
if workhorse_excluded_content_types.include?(response.content_type) && (400..599).cover?(response.status)
response.headers['X-GitLab-Custom-Error'] = '1'
end
end
Loading
Loading
@@ -124,6 +124,10 @@ class ApplicationController < ActionController::Base
 
protected
 
def workhorse_excluded_content_types
@workhorse_excluded_content_types ||= %w(text/html application/json)
end
def append_info_to_payload(payload)
super
 
Loading
Loading
Loading
Loading
@@ -641,24 +641,32 @@ describe ApplicationController do
end
end
 
it 'does not set a custom header' do
it 'sets a custom header' do
get :index, format: :json
 
expect(response.headers['X-GitLab-Custom-Error']).to be_nil
expect(response.headers['X-GitLab-Custom-Error']).to eq '1'
end
end
 
context 'given a json response for an html request' do
controller do
def index
render json: {}, status: :unprocessable_entity
context 'for html request' do
it 'sets a custom header' do
get :index
expect(response.headers['X-GitLab-Custom-Error']).to eq '1'
end
end
 
it 'does not set a custom header' do
get :index
context 'for 200 response' do
controller do
def index
render json: {}, status: :ok
end
end
 
expect(response.headers['X-GitLab-Custom-Error']).to be_nil
it 'does not set a custom header' do
get :index, format: :json
expect(response.headers['X-GitLab-Custom-Error']).to be_nil
end
end
end
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment