Use full path when constructing "Other authentication methods"
authorRob Crittenden <rcritten@redhat.com>
Thu, 6 Aug 2015 15:12:16 +0000 (15:12 +0000)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Tue, 11 Aug 2015 10:10:50 +0000 (12:10 +0200)
It was previously providing just a relative path and if the paths
overlapped I guess the browser was trying to smash them together.

This would result in a double "gssapi" in the gssapi URL like:

https://my.ipsilon.org/idp/login/gssapi/gssapi/negotiate?ips...

Don't rely on the browser to get the path right, use self.basepath.

https://fedorahosted.org/ipsilon/ticket/153

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Simo Sorce <simo@redhat.com>
ipsilon/login/common.py

index 31053a0..cd4f166 100644 (file)
@@ -184,7 +184,9 @@ class LoginFormBase(LoginPageBase):
         if other_login_stacks:
             other_stacks = list()
             for ls in other_login_stacks:
-                url = '%s?%s' % (ls.path, self.trans.get_GET_arg())
+                url = '%s/login/%s?%s' % (
+                    self.basepath, ls.path, self.trans.get_GET_arg()
+                )
                 name = ls.name
                 other_stacks.append({'url': url, 'name': name})