From 6690d662920f0db854f7303cd2a5a36c72299199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 5 Apr 2010 10:52:47 +0200 Subject: Rename config.cookie_secret to config.secret_token and pass it as configuration in request.env. This is another step forward removing global configuration. --- railties/lib/rails/application.rb | 11 +++++++++-- railties/lib/rails/application/configuration.rb | 5 +++-- railties/lib/rails/application/finisher.rb | 4 ++++ railties/lib/rails/configuration.rb | 12 ++++++++++++ railties/lib/rails/engine.rb | 8 ++------ railties/lib/rails/engine/configuration.rb | 1 - .../config/initializers/cookie_verification_secret.rb.tt | 7 ------- .../app/templates/config/initializers/secret_token.rb.tt | 7 +++++++ .../app/templates/config/initializers/session_store.rb.tt | 4 +--- railties/lib/rails/plugin.rb | 2 +- 10 files changed, 39 insertions(+), 22 deletions(-) delete mode 100644 railties/lib/rails/generators/rails/app/templates/config/initializers/cookie_verification_secret.rb.tt create mode 100644 railties/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt (limited to 'railties/lib') diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 0084309ea4..38a5aa8ca3 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -1,3 +1,4 @@ +require 'active_support/core_ext/hash/reverse_merge' require 'fileutils' require 'rails/plugin' require 'rails/engine' @@ -128,8 +129,14 @@ module Rails end def call(env) - env["action_dispatch.parameter_filter"] = config.filter_parameters - app.call(env) + app.call(env.reverse_merge!(env_defaults)) + end + + def env_defaults + @env_defaults ||= { + "action_dispatch.parameter_filter" => config.filter_parameters, + "action_dispatch.secret_token" => config.secret_token + } end def initializers diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 5c7de616be..d3e4742e8a 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -6,7 +6,7 @@ module Rails include ::Rails::Configuration::Deprecated attr_accessor :allow_concurrency, :cache_classes, :cache_store, - :cookie_secret, :consider_all_requests_local, :dependency_loading, + :secret_token, :consider_all_requests_local, :dependency_loading, :filter_parameters, :log_level, :logger, :metals, :plugins, :preload_frameworks, :reload_engines, :reload_plugins, :serve_static_assets, :time_zone, :whiny_nils @@ -37,6 +37,7 @@ module Rails paths.app.controllers << builtin_controller if builtin_controller paths.config.database "config/database.yml" paths.config.environment "config/environments", :glob => "#{Rails.env}.rb" + paths.lib.templates "lib/templates" paths.log "log/#{Rails.env}.log" paths.tmp "tmp" paths.tmp.cache "tmp/cache" @@ -123,7 +124,7 @@ module Rails def session_options return @session_options unless @session_store == :cookie_store - @session_options.merge(:secret => @cookie_secret) + @session_options.merge(:secret => @secret_token) end def default_middleware_stack diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb index 978490f25f..94507bb387 100644 --- a/railties/lib/rails/application/finisher.rb +++ b/railties/lib/rails/application/finisher.rb @@ -3,6 +3,10 @@ module Rails module Finisher include Initializable + initializer :add_generator_templates do + config.generators.templates.unshift(*paths.lib.templates.to_a) + end + initializer :ensure_load_once_paths_as_subset do extra = ActiveSupport::Dependencies.load_once_paths - ActiveSupport::Dependencies.load_paths diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb index 73ae9bcb16..dfd849b4bb 100644 --- a/railties/lib/rails/configuration.rb +++ b/railties/lib/rails/configuration.rb @@ -104,6 +104,18 @@ module Rails "please do paths.app.controllers instead", caller paths.app.controllers.to_a.uniq end + + def cookie_secret=(value) + ActiveSupport::Deprecation.warn "config.cookie_secret= is deprecated, " << + "please use config.secret_token= instead", caller + self.secret_token = value + end + + def cookie_secret + ActiveSupport::Deprecation.warn "config.cookie_secret is deprecated, " << + "please use config.secret_token instead", caller + self.secret_token + end end end end diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index e9013348b5..54c97258ce 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -193,17 +193,13 @@ module Rails app.metal_loader.paths.unshift(*paths.app.metals.to_a) end - initializer :add_generator_templates do |app| - config.generators.templates.unshift(*paths.lib.templates.to_a) - end - - initializer :load_application_initializers do + initializer :load_config_initializers do paths.config.initializers.to_a.sort.each do |initializer| load(initializer) end end - initializer :load_application_classes do |app| + initializer :load_app_classes do |app| next if $rails_rake_task if app.config.cache_classes diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb index b8f1f1009c..2129e10af8 100644 --- a/railties/lib/rails/engine/configuration.rb +++ b/railties/lib/rails/engine/configuration.rb @@ -23,7 +23,6 @@ module Rails paths.app.views "app/views", :eager_load => true paths.lib "lib", :load_path => true paths.lib.tasks "lib/tasks", :glob => "**/*.rake" - paths.lib.templates "lib/templates" paths.config "config" paths.config.initializers "config/initializers", :glob => "**/*.rb" paths.config.locales "config/locales", :glob => "*.{rb,yml}" diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/cookie_verification_secret.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/initializers/cookie_verification_secret.rb.tt deleted file mode 100644 index be627fbbcc..0000000000 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/cookie_verification_secret.rb.tt +++ /dev/null @@ -1,7 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Your secret key for verifying the integrity of signed cookies. -# If you change this key, all old signed cookies will become invalid! -# Make sure the secret is at least 30 characters and all random, -# no regular words or you'll be exposed to dictionary attacks. -Rails.application.config.cookie_secret = '<%= app_secret %>' diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt new file mode 100644 index 0000000000..c2fa31aadb --- /dev/null +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/secret_token.rb.tt @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key for verifying the integrity of signed cookies. +# If you change this key, all old signed cookies will become invalid! +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +Rails.application.config.secret_token = '<%= app_secret %>' diff --git a/railties/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt b/railties/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt index 9e32fb930e..a869a21e2c 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt +++ b/railties/lib/rails/generators/rails/app/templates/config/initializers/session_store.rb.tt @@ -1,8 +1,6 @@ # Be sure to restart your server when you modify this file. -Rails.application.config.session_store :cookie_store, { - :key => '_<%= app_name %>_session', -} +Rails.application.config.session_store :cookie_store, :key => '_<%= app_name %>_session' # Use the database for sessions instead of the cookie-based default, # which shouldn't be used to store highly confidential information diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb index 0997be1b6f..fcdd099135 100644 --- a/railties/lib/rails/plugin.rb +++ b/railties/lib/rails/plugin.rb @@ -61,7 +61,7 @@ module Rails @config ||= Engine::Configuration.new end - initializer :load_init_rb, :before => :load_application_initializers do |app| + initializer :load_init_rb, :before => :load_config_initializers do |app| files = %w(rails/init.rb init.rb).map { |path| File.expand_path path, root } if initrb = files.find { |path| File.file? path } if initrb == files.first -- cgit v1.2.3