Skip to main content

Django Cas Client

Project description

# django-cas

CAS client for Django. This library requires Django 1.5 or above, and Python 2.6, 2.7, 3.4

Current version: 1.1.1

This is [K-State's fork](https://github.com/kstateome/django-cas) of [the original](https://bitbucket.org/cpcc/django-cas/overview) and includes [several additional features](https://github.com/kstateome/django-cas/#additional-features) as well as features merged from

* [KTHse's django-cas2](https://github.com/KTHse/django-cas2).
* [Edmund Crewe's proxy ticket patch](http://code.google.com/r/edmundcrewe-proxypatch/source/browse/django-cas-proxy.patch).


## Install

This project is registered on PyPi as django-cas-client. To install::

pip install django-cas-client==1.1.1


### Add to URLs

Add the login and logout patterns to your main URLS conf.

# CAS
url(r'^accounts/login/$', 'cas.views.login', name='login'),
url(r'^accounts/logout/$', 'cas.views.logout', name='logout'),

### Add middleware and settings

Set your CAS server URL

CAS_SERVER_URL = "https://signin.somehwere/cas/"

Add cas to middleware classes

'cas.middleware.CASMiddleware',


### Add authentication backends

AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'cas.backends.CASBackend',
)

## How to Contribute

Fork and branch off of the ``develop`` branch. Submit Pull requests back to ``kstateome:develop``.

### Run The Tests

All PRs must pass unit tests. To run the tests locally:

pip install -r requirements-dev.txt
python run_tests.py


## Settings.py for CAS

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

MIDDLEWARE_CLASSES = (
'cas.middleware.CASMiddleware',
)


Add these to ``settings.py`` to use the CAS Backend::


CAS_SERVER_URL = "Your Cas Server"
CAS_LOGOUT_COMPLETELY = True
CAS_PROVIDE_URL_TO_LOGOUT = True

# 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

MIDDLEWARE_CLASSES = (
'cas.middleware.ProxyMiddleware',
)

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 ``settings.py``:

CAS_RESPONSE_CALLBACKS = (
'path.to.module.callbackfunction',
'anotherpath.to.module.callbackfunction2',
)

and create the functions in ``path/to/module.py``:

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

user, user_created = User.objects.get_or_create(username=username)
profile, created = user.get_profile()

profile.email = tree[0][1].text
profile.position = tree[0][2].text
profile.save()


## 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:

CAS_GATEWAY = True

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

from cas.decorators import gateway

@gateway()
def foo(request):
#stuff
return render(request, 'foo/bar.html')


## Custom Forbidden Page

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


## Proxy Tickets

This fork also includes
[Edmund Crewe's proxy ticket patch](http://code.google.com/r/edmundcrewe-proxypatch/source/browse/django-cas-proxy.patch).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-cas-client-1.1.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

django_cas_client-1.1.1-py2.py3-none-any.whl (16.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-cas-client-1.1.1.tar.gz.

File metadata

File hashes

Hashes for django-cas-client-1.1.1.tar.gz
Algorithm Hash digest
SHA256 c3fce4e9e0691ff82407c4aca67791dd35c6bdaf4076507acab71c4378742e17
MD5 5b1de9f83070d21f4987dd154aea05b3
BLAKE2b-256 5b8e9f303d2447b8088479f8693fca4b80a9ed0fa6ce8c3323f5d879d4173dd7

See more details on using hashes here.

File details

Details for the file django_cas_client-1.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_cas_client-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 56787abb35f45ca8225440c3f95ea67f6c60f341ff3ce20cfa88e27c4931ae49
MD5 83c2acd679bef7bda1b3854724e2a3ae
BLAKE2b-256 680c88b1f3273a4d2bd4af16239a035f3cf1becbbda4d57a06b10535607eb884

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page