skip to navigation
skip to content

django-cas-sso 1.1.7

Django Cas SSO Client (inherited from django-cas)

# django-cas-sso

[![Code Health](](

CAS client for Django. This is K-State's fork of the original, which lives at This fork is actively maintaned and
includes several new features.

Current version: 0.8.5

## Install

See the document at Bitbucket

## for CAS

Add the following to middleware if you want to use CAS::


Add these to ```` to use the CAS Backend::

CAS_SERVER_URL = "Your Cas Server"

To disable CAS authentication for the entire django admin app, you should use the ``CAS_ADMIN_AUTH`` parameter::


## Url namespace

Include `django_cas` urls :

* if your django version is 1.8 or older (defining the namespace "django_cas" is required) :

url(r'your-base_uri/', include('django_cas.urls', namespace='django_cas'))

* for version >= 1.9 (a default namespace "django_cas" will be set but you can set yours if you want) :

url(r'your-base_uri/', include('django_cas.urls'))

# Additional Features

This fork contains additional features not found in the original:
* Proxied Hosts
* CAS Response Callbacks
* CAS Gateway
* Proxy Tickets (From Edmund Crewe)

## Proxied Hosts

You will need to setup middleware to handle the use of proxies.

Add a setting ``PROXY_DOMAIN`` of the domain you want the client to use. Then add


This middleware needs to be added before the django ``common`` middleware.

## CAS Response Callbacks

To store data from CAS, create a callback function that accepts the ElementTree object from the
proxyValidate response. There can be multiple callbacks, and they can live anywhere. Define the
callback(s) in ````:


and create the functions in ``path/to/``:

def callbackfunction(tree):
username = tree[0][0].text

user, user_created = User.objects.get_or_create(username=username)
profile, created = user.get_profile() = tree[0][1].text
profile.position = tree[0][2].text

## CAS Gateway

To use the CAS Gateway feature, first enable it in settings. Trying to use it without explicitly
enabling this setting will raise an ImproperlyConfigured:


Then, add the ``gateway`` decorator to a view:

from django_cas.decorators import gateway

def foo(request):
return render(request, 'foo/bar.html')

## Custom Forbidden Page

To show a custom forbidden page, set ``CAS_CUSTOM_FORBIDDEN`` to a ````. Otherwise,
a generic ``HttpResponseForbidden`` will be returned.

## Proxy Tickets

This fork also includes Edmund Crewe's proxy ticket patch:
File Type Py Version Uploaded on Size
django-cas-sso-1.1.7.tar.gz (md5) Source 2018-02-01 13KB