1. We were inadvertently capturing 6 characters following the 'realm'
parameter in the query string (e.g. '&lang='). Fix and include extra
parameters in tests to verify.
2. Add another comment about how the 'realm' field is saved in URL-escaped
form, and test to verify.
Signed-off-by: Daniel Lenski <dlenski@gmail.com>
for (realm = strchr(vpninfo->urlpath, '?'); realm && *++realm; realm=strchr(realm, '&')) {
if (!strncmp(realm, "realm=", 6)) {
const char *end = strchrnul(realm+1, '&');
- realm = strndup(realm+6, end-realm);
+ realm = strndup(realm+6, end-realm-6);
vpn_progress(vpninfo, PRG_INFO, _("Got login realm '%s'\n"), realm);
break;
}
session.update(step='GET-realm', want_2fa=int(request.args.get('want_2fa', 0)))
# print(session)
if realm:
- return redirect(url_for('login', realm=realm))
+ return redirect(url_for('login', realm=realm, lang='en'))
else:
return login()
echo ok
echo -n "Authenticating with username/password/token and NON-DEFAULT path... "
-( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --protocol=fortinet -q $ADDRESS:443/fakeRealm?want_2fa=1 -u test --token-mode=totp --token-secret=FAKE $FINGERPRINT --pfs --cookieonly >/dev/null 2>&1) ||
+( echo "test" | LD_PRELOAD=libsocket_wrapper.so $OPENCONNECT --protocol=fortinet -q $ADDRESS:443/fake+Realm?want_2fa=1 -u test --token-mode=totp --token-secret=FAKE $FINGERPRINT --pfs --cookieonly --dump) ||
fail $PID "Could not receive cookie from fake Fortinet server"
echo ok