First, thank you for making a client for this! My company's IT dept seems unwilling to download the Junos Linux client, and Junos won't give me access to it. This VPN server uses 2 factor authentication with an SMS message sent to my phone. There are two problems, the first being relatively insignificant, but also possibly related. OS: Debian Jessie with all packages upgraded to testing. Openconnect: 7.08-1 network-manager-openconnect-gnome: 1.2.4-1 XFCE4 Problem 1 / Feature Request: When I connect, I am first prompted for username and password. There is a checkbox to remember the password. I fill the fields and check the box and submit. It comes back with the 2nd factor auth field "frmDefender". The "Save Passwords" field is still there. In the Junos mac client, if i try this, it tries to save the 2nd factor which is different on each login. That causes all kinds of problems with the client. It would be great if the "Save Passwords" field were separate or clearer as to which fields it was saving. Problem 2: After the 2nd factor, the process fails. I have attached all the logs below, but it looks like this is the problem: "Unknown form ID 'frm'" Thank you in advance for any help! :D GET https://vpn.domain.com/ Attempting to connect to server ip.ip.ip.ip:443 Connected to ip.ip.ip.ip:443 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Found Location: https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi Content-Type: text/html; charset=utf-8 Set-Cookie: DSSIGNIN=url_default; path=/dana-na/; expires=Thu, 31-Dec-2037 00:00:00 GMT; secure Set-Cookie: DSIVS=; path=/; expires=Thu, 01 Jan 1970 22:00:00 GMT; secure Set-Cookie: DSSignInURL=/; path=/; secure Connection: close Content-Length: 0 HTTP body length: (0) GET https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Date: Sun, 29 Jan 2017 22:24:00 GMT x-frame-options: SAMEORIGIN Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly POST https://vpn.domain.com/dana-na/auth/url_default/login.cgi SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=defender&id=state_effed4707128a27cd2ebaa4cb90c7f75 Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=defender&id=state_effed4707128a27cd2ebaa4cb90c7f75 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Date: Sun, 29 Jan 2017 22:24:32 GMT Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 X-Frame-Options: SAMEORIGIN HTTP body http 1.0 (-1) SSL socket closed uncleanly Ignoring unknown form submit item 'secidactionCancel' POST https://vpn.domain.com/dana-na/auth/url_default/login.cgi SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: https://vpn.domain.com/dana-na/auth/remediate.cgi?step=rolecheck&stateId=state_effed4707128a27cd2ebaa4cb90c7f75&realmId=85&rolesremaining=0&realmsremaining=1 Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/remediate.cgi?step=rolecheck&stateId=state_effed4707128a27cd2ebaa4cb90c7f75&realmId=85&rolesremaining=0&realmsremaining=1 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: /dana-na/auth/login.cgi?key=state_effed4707128a27cd2ebaa4cb90c7f75&RoleSkipRemediate=1 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/login.cgi?key=state_effed4707128a27cd2ebaa4cb90c7f75&RoleSkipRemediate=1 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=no-roles Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=no-roles SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved Date: Sun, 29 Jan 2017 22:25:01 GMT location: /dana-na/auth/remediate.cgi?step=installfail&signinId=url_default&realmsremaining=0&p=no-roles Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/remediate.cgi?step=installfail&signinId=url_default&realmsremaining=0&p=no-roles SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 X-Frame-Options: SAMEORIGIN HTTP body http 1.0 (-1) SSL socket closed uncleanly Unknown form ID 'frm' GET https://vpn.domain.com/ Attempting to connect to server ip.ip.ip.ip:443 Connected to ip.ip.ip.ip:443 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Found Location: https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi Content-Type: text/html; charset=utf-8 Set-Cookie: DSSIGNIN=url_default; path=/dana-na/; expires=Thu, 31-Dec-2037 00:00:00 GMT; secure Set-Cookie: DSIVS=; path=/; expires=Thu, 01 Jan 1970 22:00:00 GMT; secure Set-Cookie: DSSignInURL=/; path=/; secure Connection: close Content-Length: 0 HTTP body length: (0) GET https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Date: Sun, 29 Jan 2017 22:25:12 GMT x-frame-options: SAMEORIGIN Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly POST https://vpn.domain.com/dana-na/auth/url_default/login.cgi SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=defender&id=state_b81b6495ed86ce92a8765ff1a2b1a612 Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=defender&id=state_b81b6495ed86ce92a8765ff1a2b1a612 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Date: Sun, 29 Jan 2017 22:25:57 GMT Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 X-Frame-Options: SAMEORIGIN HTTP body http 1.0 (-1) SSL socket closed uncleanly Ignoring unknown form submit item 'secidactionCancel' POST https://vpn.domain.com/dana-na/auth/url_default/login.cgi SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: https://vpn.domain.com/dana-na/auth/remediate.cgi?step=rolecheck&stateId=state_b81b6495ed86ce92a8765ff1a2b1a612&realmId=85&rolesremaining=0&realmsremaining=1 Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/remediate.cgi?step=rolecheck&stateId=state_b81b6495ed86ce92a8765ff1a2b1a612&realmId=85&rolesremaining=0&realmsremaining=1 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: /dana-na/auth/login.cgi?key=state_b81b6495ed86ce92a8765ff1a2b1a612&RoleSkipRemediate=1 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/login.cgi?key=state_b81b6495ed86ce92a8765ff1a2b1a612&RoleSkipRemediate=1 SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved location: https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=no-roles Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/url_default/welcome.cgi?p=no-roles SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 302 Moved Date: Sun, 29 Jan 2017 22:26:31 GMT location: /dana-na/auth/remediate.cgi?step=installfail&signinId=url_default&realmsremaining=0&p=no-roles Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 HTTP body http 1.0 (-1) SSL socket closed uncleanly GET https://vpn.domain.com/dana-na/auth/remediate.cgi?step=installfail&signinId=url_default&realmsremaining=0&p=no-roles SSL negotiation with vpn.domain.com Connected to HTTPS on vpn.domain.com Got HTTP response: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Connection: close Pragma: no-cache Cache-Control: no-store Expires: -1 X-Frame-Options: SAMEORIGIN HTTP body http 1.0 (-1) SSL socket closed uncleanly Unknown form ID 'frm'