mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 18:45:41 +01:00
Fix Vary headers not being set on some redirects (#27272)
This commit is contained in:
parent
8e4251f9e7
commit
40ba6e119b
4 changed files with 7 additions and 6 deletions
|
@ -4,10 +4,10 @@ module WebAppControllerConcern
|
||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
included do
|
included do
|
||||||
prepend_before_action :redirect_unauthenticated_to_permalinks!
|
|
||||||
before_action :set_app_body_class
|
|
||||||
|
|
||||||
vary_by 'Accept, Accept-Language, Cookie'
|
vary_by 'Accept, Accept-Language, Cookie'
|
||||||
|
|
||||||
|
before_action :redirect_unauthenticated_to_permalinks!
|
||||||
|
before_action :set_app_body_class
|
||||||
end
|
end
|
||||||
|
|
||||||
def skip_csrf_meta_tags?
|
def skip_csrf_meta_tags?
|
||||||
|
@ -22,7 +22,9 @@ module WebAppControllerConcern
|
||||||
return if user_signed_in? && current_account.moved_to_account_id.nil?
|
return if user_signed_in? && current_account.moved_to_account_id.nil?
|
||||||
|
|
||||||
redirect_path = PermalinkRedirector.new(request.path).redirect_path
|
redirect_path = PermalinkRedirector.new(request.path).redirect_path
|
||||||
|
return if redirect_path.blank?
|
||||||
|
|
||||||
redirect_to(redirect_path) if redirect_path.present?
|
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
|
||||||
|
redirect_to(redirect_path)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
class FollowerAccountsController < ApplicationController
|
class FollowerAccountsController < ApplicationController
|
||||||
include AccountControllerConcern
|
include AccountControllerConcern
|
||||||
include SignatureVerification
|
include SignatureVerification
|
||||||
include WebAppControllerConcern
|
|
||||||
|
|
||||||
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
|
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
class FollowingAccountsController < ApplicationController
|
class FollowingAccountsController < ApplicationController
|
||||||
include AccountControllerConcern
|
include AccountControllerConcern
|
||||||
include SignatureVerification
|
include SignatureVerification
|
||||||
include WebAppControllerConcern
|
|
||||||
|
|
||||||
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
|
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ module TestEndpoints
|
||||||
/directory
|
/directory
|
||||||
/@alice
|
/@alice
|
||||||
/@alice/110224538612341312
|
/@alice/110224538612341312
|
||||||
|
/deck/home
|
||||||
).freeze
|
).freeze
|
||||||
|
|
||||||
# Endpoints that should be cachable when accessed anonymously but have a Vary
|
# Endpoints that should be cachable when accessed anonymously but have a Vary
|
||||||
|
|
Loading…
Reference in a new issue