From: Daniel Lenski Date: Thu, 19 Sep 2019 21:01:51 +0000 (-0700) Subject: SAML auth isn't done until we've gotten the username and cookie headers specifically... X-Git-Url: https://code.communitydata.science/nu-vpn-proxy.git/commitdiff_plain/f923c1247c40994eccdf429cccb6a7b0e22ffd2b?hp=ff4d825290b5c9d7a76d1f64a2c67bcd1928d5ac SAML auth isn't done until we've gotten the username and cookie headers specifically (ping #2) --- diff --git a/gp-saml-gui.py b/gp-saml-gui.py index 1f2b1b5..0bd4248 100755 --- a/gp-saml-gui.py +++ b/gp-saml-gui.py @@ -24,6 +24,7 @@ class SAMLLoginView: # API reference: https://lazka.github.io/pgi-docs/#WebKit2-4.0 self.success = False + self.saml_result = {} self.verbose = verbose self.ctx = WebKit2.WebContext.get_default() @@ -65,10 +66,13 @@ class SAMLLoginView: if (name.startswith('saml-') or name in ('prelogin-cookie', 'portal-userauthcookie')): t.append((name, value)) h.foreach(listify) - self.saml_result = d = dict(l) - if d: - if self.verbose: - print("Got SAML relevant headers, done: %r" % d, file=stderr) + d = dict(l) + if d and self.verbose: + print("Got SAML result headers: %r" % d, file=stderr) + d = self.saml_result + d.update(dict(l)) + if 'saml-username' in d and ('prelogin-cookie' in d or 'portal-userauthcookie' in d): + print("Got all required SAML headers, done.", file=stderr) self.success = True Gtk.main_quit()