[Rails5] Force the `protect_from_forgery` callback run first
Since Rails 5.0 the `protect_from_forgery` callback doesn't run first by
default anymore. [1]
Instead it gets inserted into callbacks chain where callbacks get
called in order.
This commit forces the callback to run first.
[1]: 3979403781
This commit is contained in:
parent
e40aa39770
commit
6fef87f17f
|
|
@ -27,7 +27,7 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
after_action :set_page_title_header, if: -> { request.format == :json }
|
||||
|
||||
protect_from_forgery with: :exception
|
||||
protect_from_forgery with: :exception, prepend: true
|
||||
|
||||
helper_method :can?
|
||||
helper_method :import_sources_enabled?, :github_import_enabled?, :gitea_import_enabled?, :github_import_configured?, :gitlab_import_enabled?, :gitlab_import_configured?, :bitbucket_import_enabled?, :bitbucket_import_configured?, :google_code_import_enabled?, :fogbugz_import_enabled?, :git_import_enabled?, :gitlab_project_import_enabled?
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
class HealthController < ActionController::Base
|
||||
protect_from_forgery with: :exception, except: :storage_check
|
||||
protect_from_forgery with: :exception, except: :storage_check, prepend: true
|
||||
include RequiresWhitelistedMonitoringClient
|
||||
|
||||
CHECKS = [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
class MetricsController < ActionController::Base
|
||||
include RequiresWhitelistedMonitoringClient
|
||||
|
||||
protect_from_forgery with: :exception
|
||||
protect_from_forgery with: :exception, prepend: true
|
||||
|
||||
def index
|
||||
response = if Gitlab::Metrics.prometheus_metrics_enabled?
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|||
include AuthenticatesWithTwoFactor
|
||||
include Devise::Controllers::Rememberable
|
||||
|
||||
protect_from_forgery except: [:kerberos, :saml, :cas3]
|
||||
protect_from_forgery except: [:kerberos, :saml, :cas3], prepend: true
|
||||
|
||||
def handle_omniauth
|
||||
omniauth_flow(Gitlab::Auth::OAuth)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: "[Rails5] Force the callback run first"
|
||||
merge_request: 20055
|
||||
author: "@blackst0ne"
|
||||
type: fixed
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
module Gitlab
|
||||
module RequestForgeryProtection
|
||||
class Controller < ActionController::Base
|
||||
protect_from_forgery with: :exception
|
||||
protect_from_forgery with: :exception, prepend: true
|
||||
|
||||
rescue_from ActionController::InvalidAuthenticityToken do |e|
|
||||
logger.warn "This CSRF token verification failure is handled internally by `GitLab::RequestForgeryProtection`"
|
||||
|
|
|
|||
Loading…
Reference in New Issue