1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-19 15:01:14 +00:00

Ported the session_store.rb generation task from trunk.

Loosely based on r2493 but adapted for Rails 2.1.2.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.8-stable@3054 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Eric Davis 2009-11-14 20:19:09 +00:00
parent 051741f05c
commit 638a9a264a
3 changed files with 37 additions and 4 deletions

View File

@ -19,11 +19,17 @@ require 'uri'
require 'cgi' require 'cgi'
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
class MissingSessionSecret < Exception ; end
layout 'base' layout 'base'
before_filter :user_setup, :check_if_login_required, :set_localization before_filter :user_setup, :check_if_login_required, :set_localization
filter_parameter_logging :password filter_parameter_logging :password
protect_from_forgery :secret => session.first[:secret]
if session.first[:secret].blank?
raise MissingSessionSecret, "Missing session secret. Please run 'rake config/initializers/session_store.rb' to generate one"
else
protect_from_forgery :secret => session.first[:secret]
end
include Redmine::MenuManager::MenuController include Redmine::MenuManager::MenuController
helper Redmine::MenuManager::MenuHelper helper Redmine::MenuManager::MenuHelper

View File

@ -30,7 +30,10 @@ Optional:
rake db:migrate RAILS_ENV="production" rake db:migrate RAILS_ENV="production"
It will create tables and an administrator account. It will create tables and an administrator account.
5. Setting up permissions 5. Generate a session store secret. Run:
rake config/initializers/session_store.rb
6. Setting up permissions
The user who runs Redmine must have write permission on the following The user who runs Redmine must have write permission on the following
subdirectories: files, log, tmp (create the last one if not present). subdirectories: files, log, tmp (create the last one if not present).
@ -39,13 +42,13 @@ Optional:
sudo chown -R redmine:redmine files log tmp sudo chown -R redmine:redmine files log tmp
sudo chmod -R 755 files log tmp sudo chmod -R 755 files log tmp
6. Test the installation by running WEBrick web server: 7. Test the installation by running WEBrick web server:
ruby script/server -e production ruby script/server -e production
Once WEBrick has started, point your browser to http://localhost:3000/ Once WEBrick has started, point your browser to http://localhost:3000/
You should now see the application welcome page You should now see the application welcome page
7. Use default administrator account to log in: 8. Use default administrator account to log in:
login: admin login: admin
password: admin password: admin

View File

@ -0,0 +1,24 @@
desc 'Generates a configuration file for cookie store sessions.'
file 'config/initializers/session_store.rb' do
path = File.join(RAILS_ROOT, 'config', 'initializers', 'session_store.rb')
secret = Rails::SecretKeyGenerator.new(self).generate_secret[0,40]
File.open(path, 'w') do |f|
f.write <<"EOF"
# This file was generated by 'rake config/initializers/session_store.rb',
# and should not be made visible to public.
# If you have a load-balancing Redmine cluster, you will need to use the
# same version of this file on each machine. And be sure to restart your
# server when you modify this file.
# Your secret key for verifying cookie session data integrity. If you
# change this key, all old sessions 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.
ActionController::Base.session = {
:session_key => '_redmine_session',
:secret => '#{secret}'
}
EOF
end
end