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.4.0
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.4.0
### 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.
## Require SSL Login
To force the service url to always target HTTPS, set ``CAS_FORCE_SSL_SERVICE_URL`` to ``True``.
## Automatically Create Users on First Login
By default, a stub user record will be created on the first successful CAS authentication
using the username in the response. If this behavior is not desired set
``CAS_AUTO_CREATE_USER`` to ``False``.
## 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).
You can opt out of the time delay sometimes caused by proxy ticket validation by setting:
CAS_PGT_FETCH_WAIT = False
CAS client for Django. This library requires Django 1.5 or above, and Python 2.6, 2.7, 3.4
Current version: 1.4.0
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.4.0
### 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.
## Require SSL Login
To force the service url to always target HTTPS, set ``CAS_FORCE_SSL_SERVICE_URL`` to ``True``.
## Automatically Create Users on First Login
By default, a stub user record will be created on the first successful CAS authentication
using the username in the response. If this behavior is not desired set
``CAS_AUTO_CREATE_USER`` to ``False``.
## 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).
You can opt out of the time delay sometimes caused by proxy ticket validation by setting:
CAS_PGT_FETCH_WAIT = False
Project details
Release history Release notifications | RSS feed
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.4.0.tar.gz
(12.7 kB
view details)
Built Distribution
File details
Details for the file django-cas-client-1.4.0.tar.gz
.
File metadata
- Download URL: django-cas-client-1.4.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a190c9e651df3a65840206b38a9fc1c2c404696fcaf66fc69a684591f56d978 |
|
MD5 | d426d89b2907069a25e99c94d404da3d |
|
BLAKE2b-256 | 6599ed92c9729c201350c297fa7bc1cf75ffbefbc432e41db17c55fad86cb80f |
Provenance
File details
Details for the file django_cas_client-1.4.0-py2.py3-none-any.whl
.
File metadata
- Download URL: django_cas_client-1.4.0-py2.py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d941d58769437e56656464c91461e61eee27ff2dac3ed53766e0042bc33169a |
|
MD5 | cca547541e5fd3bbbd907044d2af59c9 |
|
BLAKE2b-256 | 6fb1af5f0064afe0819fd87a5dd72d29f0b3460d89b7b7a6692b2ea0e7198dd7 |