[mod_python] Sessions + Publisher

Terry MacDonald terry.macdonald at dsl.pipex.com
Wed Sep 22 15:50:30 EDT 2004


If is_new() is always true it means that a session cookie is not in the
request.

util.redirect does not set up the cookie in the response, calling
Session(req, secret...) does that (if the request does not have a valid
one already set)

Not knowing what is going on in your login script its hard to tell what
the exact problem is but I would check that session cookies are being
exchnged between the browser and the server.

On Wed, 2004-09-22 at 01:12, Todd Boland wrote:
> Hello again!
> 
> In my experiences as a web developer (I'm coming from a Perl/Mason 
> environment), I've found that the convenience of "transparently" 
> generating sessions outweighs the performance hit.
> 
> I'm trying to implement sessions "transparently" using 2 handlers for 
> every request. The first handler makes sure a session is set, if it was 
> just created, it will forward the browser to a login page (like the 
> documentation suggests). More code that checks session ids against 
> values in the database to authenticate users will eventually be added.
> 
> By the time a request gets to the second handler (the Publisher 
> handler), sessions have preemptively been taken care of (it's totally 
> "transparent").
> 
> The problem I'm having is: I end up in an infinite redirect loop:
> 
> The session handler:
> 
> from mod_python import apache, util
> from mod_python.Session import Session
> from RPM.common import web_root
> 
> def handler(req):
>          session = Session(req, secret='********')
> 
>          # if the session is new, they need to log in
>          if session.is_new():
> 
>                  # Using util's redirect will set the cookie
>                  util.redirect(req, web_root('index.py/login?url=%s' % 
> req.uri))
> 
> 	# TODO: Make sure sid is logged in
> 
> 	# Hand off to Publisher handler by returning 200 OK
>          return apache.OK
> 
> session.is_new() always returns 1 even after the session cookie is set 
> (after the redirect). Any ideas or nudges in the right direction would 
> greatly be appreciated. Thanks!
-- 
Terry
Registered Linux User # 311806
www.taumu.com




More information about the Mod_python mailing list