diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index 1b6b7cdf..e3a196fc 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -1296,7 +1296,8 @@ module Sinatra def setup_sessions(builder) return unless sessions? - options = { :secret => session_secret } + options = {} + options[:secret] = session_secret if session_secret? options.merge! sessions.to_hash if sessions.respond_to? :to_hash builder.use Rack::Session::Cookie, options end diff --git a/test/helpers_test.rb b/test/helpers_test.rb index 352763e5..c39a0d29 100644 --- a/test/helpers_test.rb +++ b/test/helpers_test.rb @@ -313,6 +313,20 @@ class HelpersTest < Test::Unit::TestCase assert_body 'ok' end + it 'allows disabling session secret' do + mock_app do + enable :sessions + disable :session_secret + get '/' do + assert !env['rack.session.options'].include?(:session_secret) + 'ok' + end + end + + get '/' + assert_body 'ok' + end + it 'accepts an options hash' do mock_app do set :sessions, :foo => :bar