X-Git-Url: https://code.communitydata.science/nu-vpn-proxy.git/blobdiff_plain/2cbd24046bcfe474138f93a60133518a8fc92c2a..10e4628f35f0304d12aec6c9cb1ec400bbfcf6c6:/gp-saml-gui.py?ds=inline diff --git a/gp-saml-gui.py b/gp-saml-gui.py index e4298dd..0f14f87 100755 --- a/gp-saml-gui.py +++ b/gp-saml-gui.py @@ -8,6 +8,7 @@ import requests import xml.etree.ElementTree as ET import os +from shlex import quote from sys import stderr from binascii import a2b_base64, b2a_base64 @@ -166,9 +167,15 @@ if __name__ == "__main__": else: cn = None + fullpath = ('/global-protect/getconfig.esp' if args.portal else '/ssl-vpn/login.esp') + shortpath = ('portal' if args.portal else 'gateway') if args.verbose: print('''\n\nSAML response converted to OpenConnect command line invocation:\n''', file=stderr) - print(''' echo {!r} |\n openconnect --protocol=gp --user={!r} --usergroup={}:{} --passwd-on-stdin {}\n'''.format( - cv, un, ('portal' if args.portal else 'gateway'), cn, args.server), file=stderr) - - print("HOST={!r}\nUSER={!r}\nCOOKIE={!r}".format('https://%s/%s:%s' % (args.server, ('portal' if args.portal else 'gateway'), cn), un, cv)) + print(''' echo {} |\n openconnect --protocol=gp --user={} --usergroup={}:{} --passwd-on-stdin {}\n'''.format( + quote(cv), quote(un), quote(shortpath), quote(cn), quote(args.server)), file=stderr) + + varvals = { + 'HOST': quote('https://%s/%s:%s' % (args.server, shortpath, cn)), + 'USER': quote(un), 'COOKIE': quote(cv), + } + print('\n'.join('%s=%s' % pair for pair in varvals.items()))