From 0444affc1cca7253066e741aaad4ff266132ecd5 Mon Sep 17 00:00:00 2001 From: Steve Azzopardi Date: Tue, 24 Jul 2018 14:05:48 +0200 Subject: Fix authorization for web terminals Workhorse was not able to parse the `headers` property since it was expecting a key => array as a structure. Error from workhorse: preAuthorizeHandler: decode authorization response: json: cannot unmarshal string into Go struct field TerminalSettings.Header of type []string Workhorse was not changed since this api is already used for the environment terminals. gitlab-org/gitlab-ce#25990 --- app/models/ci/build_runner_session.rb | 2 +- spec/models/ci/build_runner_session_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/ci/build_runner_session.rb b/app/models/ci/build_runner_session.rb index 6f3be31d8e1..869dc0ccadf 100644 --- a/app/models/ci/build_runner_session.rb +++ b/app/models/ci/build_runner_session.rb @@ -17,7 +17,7 @@ module Ci { subprotocols: ['terminal.gitlab.com'].freeze, url: "#{url}/exec".sub("https://", "wss://"), - headers: { Authorization: authorization.presence }.compact, + headers: { Authorization: [authorization.presence] }.compact, ca_pem: certificate.presence } end diff --git a/spec/models/ci/build_runner_session_spec.rb b/spec/models/ci/build_runner_session_spec.rb index 7183957aa50..35622366829 100644 --- a/spec/models/ci/build_runner_session_spec.rb +++ b/spec/models/ci/build_runner_session_spec.rb @@ -29,7 +29,7 @@ describe Ci::BuildRunnerSession, model: true do it 'adds Authorization header if authorization is present' do subject.authorization = 'whatever' - expect(terminal_specification[:headers]).to include(Authorization: 'whatever') + expect(terminal_specification[:headers]).to include(Authorization: ['whatever']) end end end -- cgit v1.2.1