def test_serialize_unserialize(self): dt = datetime(2011, 7, 9, 13, 14, 15) id = 59034 sid = SessionID(id, dt) data = sid.serialize() SessionID(123) restored_sid = sid.unserialize(data) self.assertEqual(sid.id, restored_sid.id) self.assertEqual(sid.created, restored_sid.created)
def save_session(self, app, session, response): if session.modified: # create a new session id only if requested # this makes it possible to avoid session fixation, but prevents # full cookie-highjacking if used carefully if not getattr(session, 'sid_s', None): session.sid_s = SessionID( current_app.config['SESSION_RANDOM_SOURCE'].getrandbits( app.config['SESSION_KEY_BITS'])).serialize() current_app.kvsession_store.put( session.sid_s, self.serialization_method.dumps(dict(session))) session.new = False # save sid_s in session cookie cookie_data = Signer(app.secret_key).sign(session.sid_s) response.set_cookie(key=app.config['SESSION_COOKIE_NAME'], value=cookie_data, expires=self.get_expiration_time(app, session), domain=self.get_cookie_domain(app), secure=app.config['SESSION_COOKIE_SECURE'], httponly=app.config['SESSION_COOKIE_HTTPONLY'])
def test_automatic_created_date(self): start = datetime.utcnow() sid = SessionID(0) end = datetime.utcnow() self.assertTrue(start <= sid.created <= end)
def test_serialize(self): t = int(time.time()) dt = datetime.utcfromtimestamp(t) sid = SessionID(1234, dt) self.assertEqual('%x_%x' % (1234, t), sid.serialize())
def show_session(): from flask.ext.kvsession import SessionID print '=== session created time:', SessionID.unserialize(session.sid_s).created print '=== session object', session._get_current_object() return json.dumps(dict(session), indent=4)
def show_session(): from flask.ext.kvsession import SessionID print '=== session created time:', SessionID.unserialize( session.sid_s).created print '=== session object', session._get_current_object() return json.dumps(dict(session), indent=4)