diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index 1c065e1ddbdb118d3b2c6f7f5c4d0fca17ee8078..2be35b6ea9dc18633ddd65c6ab124cfc18f2c768 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -46,6 +46,8 @@ class JiraService < IssueTrackerService context_path: url.path, auth_type: :basic, read_timeout: 120, + use_cookies: true, + additional_cookies: ['OBBasicAuth=fromDialog'], use_ssl: url.scheme == 'https' } end diff --git a/changelogs/unreleased/feature-40842-provide-oracles-webgate-cookies-to-jira-requests.yml b/changelogs/unreleased/feature-40842-provide-oracles-webgate-cookies-to-jira-requests.yml new file mode 100644 index 0000000000000000000000000000000000000000..d5ff5bc462796a725e167ccb976a9aca58aade49 --- /dev/null +++ b/changelogs/unreleased/feature-40842-provide-oracles-webgate-cookies-to-jira-requests.yml @@ -0,0 +1,6 @@ +--- +title: Provide additional cookies to JIRA service requests to allow Oracle WebGates + Basic Auth +merge_request: +author: Stanislaw Wozniak +type: changed diff --git a/doc/user/project/integrations/jira.md b/doc/user/project/integrations/jira.md index 93aec56f8dcd9046e0b14abe28275359e828eaa0..7dc234a9759f1303f18dc9e74a834ca5f3a888fc 100644 --- a/doc/user/project/integrations/jira.md +++ b/doc/user/project/integrations/jira.md @@ -98,6 +98,9 @@ password as they will be needed when configuring GitLab in the next section. - GitLab 8.14 introduced a new way to integrate with JIRA which greatly simplified the configuration options you have to enter. If you are using an older version, [follow this documentation][jira-repo-old-docs]. +- In order to support Oracle's Access Manager, GitLab will send additional cookies + to enable Basic Auth. The cookie being added to each request is `OBBasicAuth` with + a value of `fromDialog`. To enable JIRA integration in a project, navigate to the [Integrations page](project_services.md#accessing-the-project-services), click diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index ad22fb2a386e82be1f3ed5609c3a95daf64cde7e..c9b3c6cf602dedc7a4df6b066463f626b69d690d 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -395,6 +395,26 @@ describe JiraService do end end + describe 'additional cookies' do + let(:project) { create(:project) } + + context 'provides additional cookies to allow basic auth with oracle webgate' do + before do + @service = project.create_jira_service( + active: true, properties: { url: 'http://jira.com' }) + end + + after do + @service.destroy! + end + + it 'is initialized' do + expect(@service.options[:use_cookies]).to eq(true) + expect(@service.options[:additional_cookies]).to eq(["OBBasicAuth=fromDialog"]) + end + end + end + describe 'project and issue urls' do let(:project) { create(:project) }