From 10e4628f35f0304d12aec6c9cb1ec400bbfcf6c6 Mon Sep 17 00:00:00 2001 From: Daniel Lenski Date: Fri, 24 Jan 2020 00:17:02 -0800 Subject: [PATCH 1/1] should use shlex.quote() instead of repr() --- gp-saml-gui.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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())) -- 2.39.5