Changeset 7001
- Timestamp:
- 01/06/08 06:53:09 (8 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/contrib/sessions/backends/db.py
r6333 r7001 11 11 def __init__(self, session_key=None): 12 12 super(SessionStore, self).__init__(session_key) 13 13 14 14 def load(self): 15 15 try: 16 16 s = Session.objects.get( 17 session_key = self.session_key, 17 session_key = self.session_key, 18 18 expire_date__gt=datetime.datetime.now() 19 19 ) 20 20 return self.decode(s.session_data) 21 21 except (Session.DoesNotExist, SuspiciousOperation): 22 22 23 23 # Create a new session_key for extra security. 24 24 self.session_key = self._get_new_session_key() … … 27 27 # Save immediately to minimize collision 28 28 self.save() 29 # Ensure the user is notified via a new cookie. 30 self.modified = True 29 31 return {} 30 32 31 33 def exists(self, session_key): 32 34 try: … … 35 37 return False 36 38 return True 37 39 38 40 def save(self): 39 41 Session.objects.create( … … 42 44 expire_date = datetime.datetime.now() + datetime.timedelta(seconds=settings.SESSION_COOKIE_AGE) 43 45 ) 44 46 45 47 def delete(self, session_key): 46 48 try: django/trunk/django/contrib/sessions/backends/file.py
r6889 r7001 11 11 def __init__(self, session_key=None): 12 12 self.storage_path = getattr(settings, "SESSION_FILE_PATH", tempfile.gettempdir()) 13 13 14 14 # Make sure the storage path is valid. 15 15 if not os.path.isdir(self.storage_path): … … 18 18 "to an existing directory in which Django "\ 19 19 "can store session data." % self.storage_path) 20 21 self.file_prefix = settings.SESSION_COOKIE_NAME 20 21 self.file_prefix = settings.SESSION_COOKIE_NAME 22 22 super(SessionStore, self).__init__(session_key) 23 23 24 24 def _key_to_file(self, session_key=None): 25 25 """ … … 28 28 if session_key is None: 29 29 session_key = self.session_key 30 30 31 31 # Make sure we're not vulnerable to directory traversal. Session keys 32 32 # should always be md5s, so they should never contain directory components. 33 33 if os.path.sep in session_key: 34 34 raise SuspiciousOperation("Invalid characters (directory components) in session key") 35 35 36 36 return os.path.join(self.storage_path, self.file_prefix + session_key) 37 37 38 38 def load(self): 39 39 session_data = {} … … 47 47 self._session_cache = {} 48 48 self.save() 49 # Ensure the user is notified via a new cookie. 50 self.modified = True 49 51 finally: 50 52 session_file.close() … … 67 69 return True 68 70 return False 69 71 70 72 def delete(self, session_key): 71 73 try: … … 73 75 except OSError: 74 76 pass 75 77 76 78 def clean(self): 77 79 pass
