summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2015-03-06 12:12:00 -0500
committerSimo Sorce <simo@redhat.com>2015-03-06 15:15:31 -0500
commite0aa4f23846fa9f6bb0fb9eb021e930b035100eb (patch)
tree7f218c35ddc007053df082964db0876ce59a4c85
parent06b387bcc632a8db9e812c9069247b10fe2b9695 (diff)
downloadipsilon-e0aa4f23846fa9f6bb0fb9eb021e930b035100eb.tar.gz
ipsilon-e0aa4f23846fa9f6bb0fb9eb021e930b035100eb.tar.xz
ipsilon-e0aa4f23846fa9f6bb0fb9eb021e930b035100eb.zip
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 <simo@redhat.com> Reviewed-by: Nathan Kinder <nkinder@redhat.com>
-rw-r--r--ipsilon/util/page.py10
1 files 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: