[Zope] Invalidating a session, creating a new

Dennis Allison allison at sumeru.stanford.EDU
Sat Oct 23 14:17:32 EDT 2004


Which Zope are you running?  There were major changes to the session
mechanism in 2.7.X.

On Sat, 23 Oct 2004, Sune Broendum Woeller wrote:

> Hi all,
> 
> In the zope book, sessions chapter, is written:
> 
> "Manually Invalidating A Session Data Object
> 
> Developers can manually invalidate a session data object. When a session
> data object is invalidated, it will be flushed from the system, and will not
> be returned by subsequent references to REQUEST.SESSION or getSessionData().
> "
> 
> and :
> 
> "...subsequent references to REQUEST.SESSION in this same request will
> return a new session data object."
> 
> I would like to be able to invalidate the session object, and then create a
> new session with a new key, to be accessed in the next request.
> 
> But I find that when invalidating a session data object, I can *still*
> access the old session data in subsequent references to REQUEST.SESSION, in
> the same request that is. I do not get a new session data object, as I
> should according to the zope book. And therefore I can not reference the new
> keys I create in the following requests.
> 
> Has anyone got a solution for this problem ?
> 
> It seems the invalidation goes on "between" requests.
> 
> Is this an error with the sessioning machinery or in the zope book ?
> 
> Below there are three test scripts, that shows what is going on.
> 
> greetings,
> Sune B. Woeller
> 
> 
> 
> 
> file test1.py:
> ******
> s = context.REQUEST.SESSION
> 
> s['mykey']='myvalue'
> 
> print "Page 1, add a key to session.<br />"
> print "session : <br />"
> print s
> print "<br /><br />"
> print '<a href ="test2">Page 2, invalidate session and add a new key</a><br
> />'
> print '<a href ="test3">Page 3, show session</a><br />'
> 
> return printed
> 
> *****
> 
> file test2.py:
> *****
> s = context.REQUEST.SESSION
> 
> print "Page 2, invalidate session and add a new key.<br />"
> 
> s.invalidate()
> 
> s['mySecondKey']='mySecondValue'
> print "session after invalidate: <br />"
> print s
> 
> print "<br /><br />"
> print '<a href ="test1">Page 1, add a key to session</a><br />'
> print '<a href ="test3">Page 3, show session</a><br />'
> 
> return printed
> 
> *****
> 
> file test3.py:
> *****
> s = context.REQUEST.SESSION
> print "Page 3, show session<br />"
> print "session : <br />"
> print s
> 
> print "<br /><br />"
> print '<a href ="test1">Page 1</a><br />'
> print '<a href ="test2">Page 2</a><br />'
> 
> return printed
> 
> 
> 
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
> 



More information about the Zope mailing list