File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed
django_cassandra_engine/sessions Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change 1+ from datetime import datetime
2+ import logging
3+
14from django .contrib .sessions .backends .db import (
25 SessionStore as DjangoSessionStore
36)
7+ from django .core .exceptions import SuspiciousOperation
8+ from django .utils .encoding import force_text
49from django .utils .functional import cached_property
510from django .contrib .sessions .backends import db
611
@@ -36,6 +41,21 @@ def create_model_instance(self, data):
3641 expire_date = self .get_expiry_date (),
3742 )
3843
44+ def load (self ):
45+ try :
46+ s = self .model .objects .get (session_key = self .session_key )
47+ if s .expire_date <= datetime .now ():
48+ s .delete ()
49+ raise SuspiciousOperation ('old session detected' )
50+ return self .decode (s .session_data )
51+ except (self .model .DoesNotExist , SuspiciousOperation ) as e :
52+ if isinstance (e , SuspiciousOperation ):
53+ logger = logging .getLogger ('django.security.%s' %
54+ e .__class__ .__name__ )
55+ logger .warning (force_text (e ))
56+ self .create ()
57+ return {}
58+
3959 def exists (self , session_key ):
4060 try :
4161 self .model .objects .get (session_key = session_key )
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ class AbstractBaseSession(Model):
66 __abstract__ = True
77
88 session_key = columns .Text (primary_key = True , max_length = 40 )
9- expire_date = columns .DateTime (primary_key = True , clustering_order = 'DESC' )
9+ expire_date = columns .DateTime ()
1010
1111 session_data = columns .Text ()
1212
You can’t perform that action at this time.
0 commit comments