From e0aa4f23846fa9f6bb0fb9eb021e930b035100eb Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 6 Mar 2015 12:12:00 -0500 Subject: [PATCH] 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 Reviewed-by: Nathan Kinder --- ipsilon/util/page.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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: -- 2.20.1