From d07fc49b83801a985516d5fd299717f4c4e7abff Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 6 Mar 2015 12:12:00 -0500 Subject: Find transaction ids for internal redirects On internal redirections, such as when ErrorDocument is used to redirect on failed negotiate authentication we need to look harder for the transaction id. Ticket: #74 Signed-off-by: Simo Sorce --- ipsilon/util/page.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'ipsilon/util/page.py') diff --git a/ipsilon/util/page.py b/ipsilon/util/page.py index f4e53d6..50585ca 100644 --- a/ipsilon/util/page.py +++ b/ipsilon/util/page.py @@ -138,9 +138,15 @@ class Page(Endpoint): # Try with kwargs first tid = t.find_tid(kwargs) if not tid: - # If no TID yet See if we have it in a referer + # If no TID yet See if we have it in a referer or in the + # environment in the REDIRECT_URL + url = None if 'referer' in cherrypy.request.headers: - r = urlparse(unquote(cherrypy.request.headers['referer'])) + url = cherrypy.request.headers['referer'] + elif 'REQUEST_URI' in cherrypy.request.wsgi_environ: + url = cherrypy.request.wsgi_environ['REQUEST_URI'] + if url: + r = urlparse(unquote(url)) if r.query: tid = t.find_tid(parse_qs(r.query)) if not tid: -- cgit