Add gateway support. Add workaround for newline bug in openconnect.

This commit is contained in:
Andris Raugulis
2018-09-03 13:40:29 +03:00
parent b3201c402a
commit 1df901118d
2 changed files with 15 additions and 3 deletions
+2
View File
@@ -5,3 +5,5 @@ username = myuser
password = mypass password = mypass
totp.okta = ABCDEFGHIJKLMNOP totp.okta = ABCDEFGHIJKLMNOP
totp.google = ABCDEFGHIJKLMNOP totp.google = ABCDEFGHIJKLMNOP
gateway = Manual ny1-gw.example.com
bug.nl = 0
+13 -3
View File
@@ -88,7 +88,7 @@ def load_conf(cf):
with io.open(cf, 'r', encoding='utf-8') as fp: with io.open(cf, 'r', encoding='utf-8') as fp:
for rline in fp: for rline in fp:
line = rline.strip() line = rline.strip()
mx = re.match('^\s*([^=\s]+)\s*=\s*([^\s]+)', line) mx = re.match('^\s*([^=\s]+)\s*=\s*(.*?)\s*$', line)
if mx: if mx:
k, v = mx.group(1).lower(), mx.group(2) k, v = mx.group(1).lower(), mx.group(2)
for q in '"\'': for q in '"\'':
@@ -326,8 +326,18 @@ def main():
userauthcookie = paloalto_getconfig(conf, s, saml_username, prelogin_cookie) userauthcookie = paloalto_getconfig(conf, s, saml_username, prelogin_cookie)
log('portal-userauthcookie: {0}'.format(userauthcookie)) log('portal-userauthcookie: {0}'.format(userauthcookie))
cmd = '\necho "{1}" | openconnect --protocol=gp -u "{0}" --usergroup portal:portal-userauthcookie --passwd-on-stdin {2}' cmd = 'openconnect --protocol=gp -u "{0}"'
print(cmd.format(saml_username, userauthcookie, conf.get('vpn_url'))) cmd += ' --usergroup portal:portal-userauthcookie'
cmd += ' --passwd-on-stdin "{2}"'
gateway = (conf.get('gateway') or '').strip()
args = [saml_username, userauthcookie, conf.get('vpn_url')]
nlbug = '\\n' if conf.get('bug.nl', '').lower() in ['1', 'true'] else ''
if len(gateway) > 0:
cmd = '\nprintf "' + nlbug + '{1}\\n{3}" | ' + cmd
args.append(gateway)
else:
cmd = '\nprintf "' + nlbug + '{1}" | ' + cmd
print(cmd.format(*args))
if __name__ == '__main__': if __name__ == '__main__':