File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -477,7 +477,21 @@ def secret_key_base
477
477
config . secret_key_base ||= generate_local_secret
478
478
else
479
479
validate_secret_key_base (
480
- ENV [ "SECRET_KEY_BASE" ] || credentials . secret_key_base || secrets . secret_key_base
480
+ ENV [ "SECRET_KEY_BASE" ] || credentials . secret_key_base || begin
481
+ secret_skb = secrets_secret_key_base
482
+
483
+ if secret_skb . equal? ( config . secret_key_base )
484
+ config . secret_key_base
485
+ else
486
+ Rails . deprecator . warn ( <<~MSG . squish )
487
+ Your `secret_key_base is configured in `Rails.application.secrets`,
488
+ which is deprecated in favor of `Rails.application.credentials` and
489
+ will be removed in Rails 7.2.
490
+ MSG
491
+
492
+ secret_skb
493
+ end
494
+ end
481
495
)
482
496
end
483
497
end
Original file line number Diff line number Diff line change @@ -965,6 +965,20 @@ def index
965
965
assert_equal "3b7cd727ee24e8444053437c36cc66c3" , app . secret_key_base
966
966
end
967
967
968
+ test "config.secret_key_base does not lead to a deprecation" do
969
+ remove_file "config/secrets.yml"
970
+ app_file "config/initializers/secret_token.rb" , <<-RUBY
971
+ Rails.application.credentials.secret_key_base = nil
972
+ Rails.application.config.secret_key_base = "3b7cd727ee24e8444053437c36cc66c3"
973
+ RUBY
974
+
975
+ app "production"
976
+
977
+ assert_not_deprecated ( Rails . deprecator ) do
978
+ assert_equal "3b7cd727ee24e8444053437c36cc66c3" , app . secret_key_base
979
+ end
980
+ end
981
+
968
982
test "custom secrets saved in config/secrets.yml are loaded in app secrets" do
969
983
app_file "config/secrets.yml" , <<-YAML
970
984
development:
You can’t perform that action at this time.
0 commit comments