This is a simple little CAS server that was born out of a need for a highly configurable CAS server to support load testing. Emphasis is on simplicity, flexibility, and performance. The following SSO protocols are supported:
- CAS 1.0
- CAS 2.0
- SAML 1.1
The server implements a stupid simple routine for serving protocol
responses from files on disk under $DATA_DIR
:
for authenticated user $USER
on supported protocol $PROTOCOL
, serve
the file $DATA_DIR/$PROTOCOL/$USER
. It is the responsibility of
deployers to generate appropriate protocol data in the files, which
provides maximum flexibility for setting up test data sets at the
expense of some up-front effort generating the test data.
The sampledata
directory demonstrates the required layout of the $DATA_DIR
directory.
The files therein may be used as starting points for creating a test
data set for your needs. It's only necessary to create files under the
protocols you intend to support for testing.
The design goal of simplicity, both in implementation and configuration, incurs some notable limitations.
- No support for TLS
- Password authentication exclusively with single, static password
- No proxy support
- No single logout support
The only software requirement is Python 3.2 or later. It's recommend to run the server on a secure private network due to the lack of TLS support.
usage: server.py [-h] [--address ADDRESS] [--port PORT] secret data_dir
Start the mock CAS server
positional arguments:
secret static secret used to authenticate users
data_dir path to data directory
optional arguments:
-h, --help show this help message and exit
--address ADDRESS server bind address, 0.0.0.0 by default
--port PORT server listen port, 8080 by default