Skip to main content

JMU OpenConnect

PyPI Downloads License Maintenance GitHub Issues GitHub followers
Kofi Badge

[!IMPORTANT]

DEPRECATION NOTICE: This project is based on Ivanti Pulse Secure, which JMU no longer uses as of January 6th, 2025. Now that JMU has switched to GlobalProtect, you can switch to using yuezk/GlobalProtect-openconnect if needed. While the GUI frontend has some weird licensing restrictions, the CLI component will always be free, and you could just make a GUI wrapper around that if needed.

This is a wrapper script around openconnect to help with authentication for the JMU VPN on Linux. Openconnect used to work fine until Ivanti purchased Pulse Secure, and then that broke something. This script opens up a web browser to allow the user to authenticate with Duo, and then grabs the DSID cookie to use for openconnect authentication.

Installation

This script can easily be installed with pip or pipx with the following commands:

$ pipx install jmu-openconnect
$ # OR
$ pip3 install jmu-openconnect

Usage

Once the script is installed, you can run the following command in your terminal:

$ jmu-openconnect

You can also specify a username and password to be automatically typed in, however you will still have to do 2FA manually. You can specify one or the other or both, and if both are specified, the "Log in" button will automatically be clicked.

$ jmu-openconnect -u <EID> -p <PASSWORD>

You can alternatively specify the --prompt-password (or -P) option instead of using -p, which will prompt the user for a password without echoing, much like sudo. This is more secure as your password won't be saved in your command line history.

JMU OpenConnect defaults to using firefox, but you can easily change which browser you're using by specifying --browser, which accepts firefox, chrome, or edge.

The first time that you launch JMU OpenConnect, it may take a little longer than normal, as selenium has to download and cache your webdriver.

$ jmu-openconnect --browser chrome

To see all of the available options, run jmu-openconnect --help.

Dependencies

This script just requires openconnect and selenium. If you are having problems, check the Selenium Python Documentation.

DSID Cookie was not found

If you get the error that the DSID cookie was not found, then you may be logged on in multiple places at once. Navigate to https://vpn.jmu.edu and after signing in, you should see a screen like this:

Maximum number of open user sessions screenshot

If this is the case, just select the box to remove that sign in and press "Close Selected Sessions and Log in". After this, you will need to press the log out button in the upper right corner of the VPN website, and then you can retry the script. If this is not the problem, try running the script with jmu-openconnect --debug-auth-error to see the error for a longer period of time.

Release files for jmu-openconnect 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jmu-openconnect 0.4.1
File Size Uploaded
jmu_openconnect-0.4.1.tar.gz 10.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jmu-openconnect 0.4.1
File Interpreter ABI Platform
jmu_openconnect-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / jmu_openconnect-0.4.1.tar.gz

Download URL jmu_openconnect-0.4.1.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
34a2b5b711e74a8414927294ddbb7fcafb90bcb374a96ad4c3c80bb99b4745c5
BLAKE2b-256 checksum
How to use checksums
f8ceaafeb1ed051f5f0454499f95b96eab3fc23b235bb728f091244e819efb96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.7

Release files / jmu_openconnect-0.4.1-py3-none-any.whl

Download URL jmu_openconnect-0.4.1-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26e187c58039eef0d32de96d3394c512f5cb40c00883f16b8688a811d8967192
BLAKE2b-256 checksum
How to use checksums
e19fb25a89cd827588c5bf89a97d36f86bfe49057884bf9d38d1c387b8c7df3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page