mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #6082: file-based sessions now verify that SESSION_FILE_PATH is a valid storage location, and raise ImproperlyConfigured if not. Thanks, jags78.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6889 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -1,14 +1,23 @@ | |||||||
| import os | import os | ||||||
|  | import tempfile | ||||||
| from django.conf import settings | from django.conf import settings | ||||||
| from django.contrib.sessions.backends.base import SessionBase | from django.contrib.sessions.backends.base import SessionBase | ||||||
| from django.core.exceptions import SuspiciousOperation | from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured | ||||||
|  |  | ||||||
| class SessionStore(SessionBase): | class SessionStore(SessionBase): | ||||||
|     """ |     """ | ||||||
|     Implements a file based session store. |     Implements a file based session store. | ||||||
|     """ |     """ | ||||||
|     def __init__(self, session_key=None): |     def __init__(self, session_key=None): | ||||||
|         self.storage_path = settings.SESSION_FILE_PATH |         self.storage_path = getattr(settings, "SESSION_FILE_PATH", tempfile.gettempdir()) | ||||||
|  |          | ||||||
|  |         # Make sure the storage path is valid. | ||||||
|  |         if not os.path.isdir(self.storage_path): | ||||||
|  |             raise ImproperlyConfigured("The session storage path %r doesn't exist. "\ | ||||||
|  |                                        "Please set your SESSION_FILE_PATH setting "\ | ||||||
|  |                                        "to an existing directory in which Django "\ | ||||||
|  |                                        "can store session data." % self.storage_path) | ||||||
|  |          | ||||||
|         self.file_prefix = settings.SESSION_COOKIE_NAME     |         self.file_prefix = settings.SESSION_COOKIE_NAME     | ||||||
|         super(SessionStore, self).__init__(session_key) |         super(SessionStore, self).__init__(session_key) | ||||||
|      |      | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user