Merge branch 'feature-change-signout-route' into 'master'
Change Sign Out route from a DELETE to a GET Closes #39708 See merge request gitlab-org/gitlab-ce!15231
This commit is contained in:
commit
b579cc7620
|
|
@ -61,7 +61,7 @@
|
|||
= link_to "Help", help_path
|
||||
%li.divider
|
||||
%li
|
||||
= link_to "Sign out", destroy_user_session_path, method: :delete, class: "sign-out-link"
|
||||
= link_to "Sign out", destroy_user_session_path, class: "sign-out-link"
|
||||
- if session[:impersonator_id]
|
||||
%li.impersonation
|
||||
= link_to admin_impersonation_path, class: 'impersonation-btn', method: :delete, title: "Stop impersonation", aria: { label: 'Stop impersonation' }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body' } do
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Change 'Sign Out' route from a DELETE to a GET
|
||||
merge_request: 39708
|
||||
author: Joe Marty
|
||||
type: changed
|
||||
|
|
@ -195,7 +195,7 @@ Devise.setup do |config|
|
|||
config.navigational_formats = [:"*/*", "*/*", :html, :zip]
|
||||
|
||||
# The default HTTP method used to sign out a resource. Default is :delete.
|
||||
config.sign_out_via = :delete
|
||||
config.sign_out_via = :get
|
||||
|
||||
# ==> OmniAuth
|
||||
# To configure a new OmniAuth provider copy and edit omniauth.rb.sample
|
||||
|
|
|
|||
|
|
@ -66,11 +66,7 @@ module Gitlab
|
|||
end
|
||||
|
||||
def whitelisted_routes
|
||||
logout_route || grack_route || @whitelisted.any? { |path| request.path.include?(path) } || lfs_route || sidekiq_route
|
||||
end
|
||||
|
||||
def logout_route
|
||||
route_hash[:controller] == 'sessions' && route_hash[:action] == 'destroy'
|
||||
grack_route || @whitelisted.any? { |path| request.path.include?(path) } || lfs_route || sidekiq_route
|
||||
end
|
||||
|
||||
def sidekiq_route
|
||||
|
|
|
|||
|
|
@ -91,13 +91,6 @@ describe Gitlab::Middleware::ReadOnly do
|
|||
end
|
||||
|
||||
context 'whitelisted requests' do
|
||||
it 'expects DELETE request to logout to be allowed' do
|
||||
response = request.delete('/users/sign_out')
|
||||
|
||||
expect(response).not_to be_a_redirect
|
||||
expect(subject).not_to disallow_request
|
||||
end
|
||||
|
||||
it 'expects a POST internal request to be allowed' do
|
||||
response = request.post("/api/#{API::API.version}/internal")
|
||||
|
||||
|
|
|
|||
|
|
@ -257,8 +257,10 @@ describe "Authentication", "routing" do
|
|||
expect(post("/users/sign_in")).to route_to('sessions#create')
|
||||
end
|
||||
|
||||
it "DELETE /users/sign_out" do
|
||||
expect(delete("/users/sign_out")).to route_to('sessions#destroy')
|
||||
# sign_out with GET instead of DELETE facilitates ad-hoc single-sign-out processes
|
||||
# (https://gitlab.com/gitlab-org/gitlab-ce/issues/39708)
|
||||
it "GET /users/sign_out" do
|
||||
expect(get("/users/sign_out")).to route_to('sessions#destroy')
|
||||
end
|
||||
|
||||
it "POST /users/password" do
|
||||
|
|
|
|||
Loading…
Reference in New Issue