Changeset 1056
- Timestamp:
- 11/29/07 17:47:40 (1 year ago)
- Files:
-
- trunk/lib/merb/controller.rb (modified) (1 diff)
- trunk/lib/merb/server.rb (modified) (2 diffs)
- trunk/lib/merb/session/cookie_store.rb (modified) (1 diff)
- trunk/spec/merb/cookie_store_spec.rb (modified) (1 diff)
- trunk/spec/spec_helper.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/merb/controller.rb
r1047 r1056 40 40 class Controller < AbstractController 41 41 class_inheritable_accessor :_session_id_key, :_session_expiry 42 cattr_accessor :_subclasses 42 cattr_accessor :_subclasses, :session_secret_key 43 43 self._subclasses = [] 44 44 self.session_secret_key = nil 45 45 self._session_id_key = '_session_id' 46 46 self._session_expiry = Time.now + Merb::Const::WEEK * 2 trunk/lib/merb/server.rb
r1054 r1056 225 225 puts "Not Using Sessions" 226 226 elsif reg = types[session_store] 227 if session_store == "cookie" 228 unless @@merb_opts[:session_secret_key] && (@@merb_opts[:session_secret_key].length >= 16) 229 puts("You must specify a session_secret_key in your merb.yml, and it must be at least 16 characters\nbailing out...") 230 exit! 231 end 232 Merb::Controller.session_secret_key = @@merb_opts[:session_secret_key] 233 end 227 234 require reg[:file] 228 235 include ::Merb::SessionMixin … … 231 238 puts "Session store not found, '#{Merb::Server.config[:session_store]}'." 232 239 puts "Defaulting to CookieStore Sessions" 240 unless @@merb_opts[:session_secret_key] && (@@merb_opts[:session_secret_key].length >= 16) 241 puts("You must specify a session_secret_key in your merb.yml, and it must be at least 16 characters\nbailing out...") 242 exit! 243 end 244 Merb::Controller.session_secret_key = @@merb_opts[:session_secret_key] 233 245 require types['cookie'][:file] 234 246 include ::Merb::SessionMixin trunk/lib/merb/session/cookie_store.rb
r1053 r1056 8 8 module SessionMixin #:nodoc: 9 9 def setup_session 10 MERB_LOGGER.info("Setting Cookie Store Sessions") 11 unless secret = Merb::Server.config[:session_secret_key] 12 raise 'You must set :session_secret_key in config/merb.yml for cookie sessions' 13 end 14 request.session = Merb::CookieStore.new(cookies[_session_id_key], secret) 10 MERB_LOGGER.info("Setting Up Cookie Store Sessions") 11 request.session = Merb::CookieStore.new(cookies[_session_id_key], session_secret_key) 15 12 @original_session = request.session.read_cookie 16 13 end trunk/spec/merb/cookie_store_spec.rb
r1010 r1056 74 74 raise_error(Merb::CookieStore::CookieOverflow) 75 75 end 76 77 it "should close and marshal cookie data" do 78 session = Merb::CookieStore.new(cookie_value(:typical), @secret) 79 session.modified?.should == false 80 session['flash'] = {} 81 session.modified?.should == true 82 session.read_cookie.should == cookie_value(:flashed) 83 end 76 84 77 85 78 it "should delete entries in the session" do trunk/spec/spec_helper.rb
r795 r1056 37 37 Merb::MemorySessionContainer.setup 38 38 include ::Merb::SessionMixin 39 self.session_secret_key = "footo the bar to the baz" 39 40 end 40 41
