diff options
author | Santiago Pastorino <santiago@wyeworks.com> | 2015-10-27 11:32:41 -0200 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2015-10-27 11:32:41 -0200 |
commit | 7a9ce69ce081a0c186a23806c1af1f71c697ea77 (patch) | |
tree | 00a756d93822d212d2f196282f18e443a44ddeaa /railties | |
parent | 190c69ece3a94dbd92f84833491d1b7b1bad06ea (diff) | |
parent | 4810f401c4fd63985fb194d068717853599d0ba9 (diff) | |
download | rails-7a9ce69ce081a0c186a23806c1af1f71c697ea77.tar.gz rails-7a9ce69ce081a0c186a23806c1af1f71c697ea77.tar.bz2 rails-7a9ce69ce081a0c186a23806c1af1f71c697ea77.zip |
Merge pull request #22078 from arunagw/secret-key-as-an-integer
raise `ArgumentError` when `SECRET_KEY_BASE` is an integer
Diffstat (limited to 'railties')
-rw-r--r-- | railties/lib/rails/application.rb | 3 | ||||
-rw-r--r-- | railties/test/application/configuration_test.rb | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 7916e24af1..e81ec62a1d 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -167,6 +167,9 @@ module Rails # team. Details at https://github.com/rails/rails/pull/6952#issuecomment-7661220 @caching_key_generator ||= if secrets.secret_key_base + unless secrets.secret_key_base.kind_of?(String) + raise ArgumentError, "`secret_key_base` for #{Rails.env} environment must be a type of String, change this value in `config/secrets.yml`" + end key_generator = ActiveSupport::KeyGenerator.new(secrets.secret_key_base, iterations: 1000) ActiveSupport::CachingKeyGenerator.new(key_generator) else diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index d96d8ded6b..ebcfcb1c3a 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -417,6 +417,19 @@ module ApplicationTests end end + test "raise when secrets.secret_key_base is not a type of string" do + app_file 'config/secrets.yml', <<-YAML + development: + secret_key_base: 123 + YAML + + app 'development' + + assert_raise(ArgumentError) do + app.key_generator + end + end + test "prefer secrets.secret_token over config.secret_token" do app_file 'config/initializers/secret_token.rb', <<-RUBY Rails.application.config.secret_token = "" |