summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2023-10-05 09:50:08 +0200
committerGitHub <noreply@github.com>2023-10-05 09:50:08 +0200
commit40ba6e119b7457161fd43b449875d0fb9d473c1a (patch)
treea2afc78842afafba78d2cad537ea4edd1dc12387
parent8e4251f9e75992c13cbb3acd2d47a895278b3fbf (diff)
Fix Vary headers not being set on some redirects (#27272)
-rw-r--r--app/controllers/concerns/web_app_controller_concern.rb10
-rw-r--r--app/controllers/follower_accounts_controller.rb1
-rw-r--r--app/controllers/following_accounts_controller.rb1
-rw-r--r--spec/requests/cache_spec.rb1
4 files changed, 7 insertions, 6 deletions
diff --git a/app/controllers/concerns/web_app_controller_concern.rb b/app/controllers/concerns/web_app_controller_concern.rb
index 273d7344caa..5687d6e5b60 100644
--- a/app/controllers/concerns/web_app_controller_concern.rb
+++ b/app/controllers/concerns/web_app_controller_concern.rb
@@ -4,10 +4,10 @@ module WebAppControllerConcern
extend ActiveSupport::Concern
included do
- prepend_before_action :redirect_unauthenticated_to_permalinks!
- before_action :set_app_body_class
-
vary_by 'Accept, Accept-Language, Cookie'
+
+ before_action :redirect_unauthenticated_to_permalinks!
+ before_action :set_app_body_class
end
def skip_csrf_meta_tags?
@@ -22,7 +22,9 @@ module WebAppControllerConcern
return if user_signed_in? && current_account.moved_to_account_id.nil?
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
diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb
index ffdbd01802e..5effd9495e3 100644
--- a/app/controllers/follower_accounts_controller.rb
+++ b/app/controllers/follower_accounts_controller.rb
@@ -3,7 +3,6 @@
class FollowerAccountsController < ApplicationController
include AccountControllerConcern
include SignatureVerification
- include WebAppControllerConcern
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb
index cce296f9fd6..268fad96d09 100644
--- a/app/controllers/following_accounts_controller.rb
+++ b/app/controllers/following_accounts_controller.rb
@@ -3,7 +3,6 @@
class FollowingAccountsController < ApplicationController
include AccountControllerConcern
include SignatureVerification
- include WebAppControllerConcern
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }
diff --git a/spec/requests/cache_spec.rb b/spec/requests/cache_spec.rb
index 178d19ed0da..c391c8b3da9 100644
--- a/spec/requests/cache_spec.rb
+++ b/spec/requests/cache_spec.rb
@@ -30,6 +30,7 @@ module TestEndpoints
/directory
/@alice
/@alice/110224538612341312
+ /deck/home
).freeze
# Endpoints that should be cachable when accessed anonymously but have a Vary