# cas
[](https://landscape.io/github/unistra/django-cas/master)
CAS client for Django. This is K-State's fork of the original, which lives at
https://bitbucket.org/cpcc/django-cas/overview. This fork is actively maintaned and
includes several new features.
Current version: 0.8.5
https://github.com/kstateome/django-cas
## Install
See the document at Bitbucket
https://bitbucket.org/cpcc/django-cas/overview
## 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
To disable CAS authentication for the entire django admin app, you should use the ``CAS_ADMIN_AUTH`` parameter::
CAS_ADMIN_AUTH = False
The ``CAS_ADMIN_PREFIX`` is deprecated since version 1.1.4 and will be removed in 1.1.5 release.
# 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
[](https://landscape.io/github/unistra/django-cas/master)
CAS client for Django. This is K-State's fork of the original, which lives at
https://bitbucket.org/cpcc/django-cas/overview. This fork is actively maintaned and
includes several new features.
Current version: 0.8.5
https://github.com/kstateome/django-cas
## Install
See the document at Bitbucket
https://bitbucket.org/cpcc/django-cas/overview
## 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
To disable CAS authentication for the entire django admin app, you should use the ``CAS_ADMIN_AUTH`` parameter::
CAS_ADMIN_AUTH = False
The ``CAS_ADMIN_PREFIX`` is deprecated since version 1.1.4 and will be removed in 1.1.5 release.
# 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
Metadata
Release files for hypers-cas 1.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hypers-cas-1.1.7.tar.gz | 12.9 kB | Details |
Release files / hypers-cas-1.1.7.tar.gz
| Download URL | hypers-cas-1.1.7.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d51ecc21fde54a0c67fc314fe53ca2663739f8250d18fc6dbe47c0a752af7e95
|
|
BLAKE2b-256 checksum How to use checksums |
8ed5b06574c1fe866be2afa4b4f09412d2cd8627473317237e88d7c8d639a5aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |