# HG changeset patch # User durandn # Date 1441903185 -7200 # Node ID 681b48b19e3f5c66973ec9332926b47d6aa19aca # Parent 95ba0b597c61f39ba6b3796fd55f95534c6378a2 test monkeypatching for django_cas_ng diff -r 95ba0b597c61 -r 681b48b19e3f server/src/remie/__init__.py --- a/server/src/remie/__init__.py Thu Sep 10 16:43:19 2015 +0200 +++ b/server/src/remie/__init__.py Thu Sep 10 18:39:45 2015 +0200 @@ -0,0 +1,1 @@ +default_app_config = 'remie.apps.RemieAppConfig' \ No newline at end of file diff -r 95ba0b597c61 -r 681b48b19e3f server/src/remie/apps.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/remie/apps.py Thu Sep 10 18:39:45 2015 +0200 @@ -0,0 +1,14 @@ +from django.apps import AppConfig +from cas import REMIE_verify_cas2 + +class RemieAppConfig(AppConfig): + ''' + App config to monkey patch + ''' + + name = 'remie' + verbose_name = 'REMIE' + + def ready(self): + from django_cas_ng.backends import _verify_cas2 + _verify_cas2 = REMIE_verify_cas2 diff -r 95ba0b597c61 -r 681b48b19e3f server/src/remie/cas.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/remie/cas.py Thu Sep 10 18:39:45 2015 +0200 @@ -0,0 +1,30 @@ +from django.utils.six.moves import urllib_parse +from django.utils.six.moves.urllib_request import urlopen, Request +import logging + +logger = logging.getLogger(__name__) + + +def REMIE_verify_cas2(ticket, service): + """Verifies CAS 2.0+ XML-based authentication ticket. + Returns username on success and None on failure. + """ + try: + from xml.etree import ElementTree + except ImportError: + from elementtree import ElementTree + + params = [('ticket', ticket), ('service', service)] + url = (urllib_parse.urljoin(settings.CAS_SERVER_URL, 'serviceValidate') + '?' + + urllib_parse.urlencode(params)) + page = urlopen(url) + try: + response = page.read() + logger.debug(response) + tree = ElementTree.fromstring(response) + if tree[0].tag.endswith('authenticationSuccess'): + return tree[0][0].text, None + else: + return None, None + finally: + page.close() \ No newline at end of file