# HG changeset patch # User durandn # Date 1433234470 -7200 # Node ID 3166a35f5f0d55dae73042b5f16293b02a520f78 # Parent 5a0cbbe0922aef9559b4589997bc5645f595ad2d Added CAS Auth middleware and CAS Login urls to remie platform + removed authserver/homestead/.vagrant from repo diff -r 5a0cbbe0922a -r 3166a35f5f0d .hgignore --- a/.hgignore Wed May 27 15:34:06 2015 +0200 +++ b/.hgignore Tue Jun 02 10:41:10 2015 +0200 @@ -39,3 +39,6 @@ server/web/* server/src/dist server/src/MANIFEST.in + +syntax: regexp +^authserver/homestead/\.vagrant$ \ No newline at end of file diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/homestead/.vagrant/machines/default/virtualbox/action_provision --- a/authserver/homestead/.vagrant/machines/default/virtualbox/action_provision Wed May 27 15:34:06 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -1.5:859c39e6-35df-4962-82f3-dd9ee4fc2372 \ No newline at end of file diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/homestead/.vagrant/machines/default/virtualbox/action_set_name --- a/authserver/homestead/.vagrant/machines/default/virtualbox/action_set_name Wed May 27 15:34:06 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -1433757191 diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/homestead/.vagrant/machines/default/virtualbox/id --- a/authserver/homestead/.vagrant/machines/default/virtualbox/id Wed May 27 15:34:06 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -859c39e6-35df-4962-82f3-dd9ee4fc2372 \ No newline at end of file diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/homestead/.vagrant/machines/default/virtualbox/index_uuid --- a/authserver/homestead/.vagrant/machines/default/virtualbox/index_uuid Wed May 27 15:34:06 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -b18023f8440641c693695a091f87e673 \ No newline at end of file diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/homestead/.vagrant/machines/default/virtualbox/private_key --- a/authserver/homestead/.vagrant/machines/default/virtualbox/private_key Wed May 27 15:34:06 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAt6e7vjPOZRl8bOBsFUCPqvHfqIv4ZhN9fYLwo6OwdRcbCJIM -vdT1HtsV9A8doyVLz2rohuBzZ4j1ZE2OxXqR4oPvxoJppZEPRaD12vsKH5HMF5D3 -58TFh4ttUfHeMGiO4PMUYFiCmwg9luoAQ9+wsMO54kQBYND1QJOsbkabSOZFpZyJ -GKsm3EKWs2+rNIA+akSxxbjEi4PpPu1cIpJSXoecD5gvCBbapkTP5ryeR7/kJyCF -5gDmEyc2G3v+sT2KpglIyZgvch5gly0FXcM1hWYfxThOsV15/0SehuAH78Qj5b1Q -mtRyfaIzTxp6DbjmFX+Lt0oKdviUShUmKycgGQIDAQABAoIBAHt/eYovgC0P9FGq -oEOyRGnpeEL4zLKnjI1oDbWcjz5NqUocHCFTIPn8zUhvGbjpjY8PDwoTyMbonEs0 -tDsrbwppOkW80Jobb6+cy3bTtT0BZ8K5I1thQIsjQQIHqSfYR6wRCbS4ECt8YR4o -gMEjnMdg9pCmtl6KZUFljGAjbqyXt3Mezgld4ytJ9bl6ZuZHe+BTWOTpx7SCsw2n -njLbHyuf2JotE4iz72nPAz8TJye8zY1zG8VCqnglyHt5kOnqXPivmBbP4drqWPSi -s3QGD6PS2wNk9CFDfkf8S1n9IwKMvJMmKMIwrj8zPHnuPdxGnUvj1bVXVXsW7m/2 -bx5ClVkCgYEA7ms+Or5OFG2QjVIkCEf7JyHHOjBqLI0v5Pu/3rVAGlHDvA+y3+rX -bUmguDd+toVv2B8u+0xxtVgFg2taqW/wKFn8vcXo5h85p7pEPMXMuRHY0S51EmTI -/aHUl+iGiRg4QP3wAuArmE/Rs4F6m/FDg/Wg44mSibxPqmyAlfnvcjsCgYEAxTKv -/wxfiClCrGHXPBQWkbOuYgfSDt2t+feHn1BKwpa4uHPDQjs2nsM5ciQOqmlU4lg4 -H+Mw4MKoluzzFHoPUOwX+HPVEFtQsw9VOW8SGpJHRQCx1bBSXAYaRzNhhINpRSiX -Mx9GEBkmNMqZg4v5zm9gPsBILPBDJ7+xrtkKHbsCgYBNAQg9Ut/HC0gnzMLkhdMh -ZXCCY8a3EvbIH2NuG95TYds1L2DXn3Lq0l/9f7cGXnysMg4rjhoftwk41ACZPxUz -AzV1WamKQcWOXcPSWRRxJcmAbl/TjAe6m30dfzWMq+znWN0fIKYT8JvLPWOLYFYt -FbVcKD/TCqY0Zgz1456ppwKBgGarKjiG76ILoVvwoMf1yX5YZ31AhxwYTIEtX94R -RqsjH89g7hMokxp7mAgWP9B3gKtLtQTdG1CZ6H6TpUdO+XRvR1eirxaSBGUFoaCC -dJGDAToqz2vrHiYtQzc4yBfe90r7hCUoriipf1vS87Qqh4f0Ms7Y+3ryKHSkeFUJ -SRwLAoGBAI/2WCyXz6vq7HpkBvn2r70XtDiOuVSJM8yX+mGGuY9EMkQffD0ZvrI0 -y/Qy5c8aqPkedTJGtdeoRLXQbML7ieQ1TH6ssWJT5ds8WXg2nff1CAT4G1kC238q -Dbc7vU7JeMV61G76Kcu9gi3L9ZgCU/etDzPqYj8fbvfzGWPWj6qB ------END RSA PRIVATE KEY----- diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/homestead/.vagrant/machines/default/virtualbox/synced_folders --- a/authserver/homestead/.vagrant/machines/default/virtualbox/synced_folders Wed May 27 15:34:06 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -{"virtualbox":{"/home/vagrant/Code":{"type":null,"mount_options":[],"guestpath":"/home/vagrant/Code","hostpath":"/Users/durandn/IRIProjects/remie/authserver/testCAS","disabled":false},"/vagrant":{"guestpath":"/vagrant","hostpath":"/Users/durandn/IRIProjects/remie/authserver/homestead","disabled":false}}} \ No newline at end of file diff -r 5a0cbbe0922a -r 3166a35f5f0d authserver/testCAS/app/Http/Controllers/HomeController.php --- a/authserver/testCAS/app/Http/Controllers/HomeController.php Wed May 27 15:34:06 2015 +0200 +++ b/authserver/testCAS/app/Http/Controllers/HomeController.php Tue Jun 02 10:41:10 2015 +0200 @@ -40,7 +40,7 @@ $proxiedRequestResponse=curl_exec($ch); curl_close($ch); - $loginUrl=env("LDT_URL")."/accounts/caslogin"; + $loginUrl=env("LDT_URL")."/accounts/cas/login"; return view('home')->with( array("pt" => $pt, "err_code" => $err_code, "err_msg" => $err_msg, "proxiedRequestResponse" => $proxiedRequestResponse, 'loginUrl' => $loginUrl) diff -r 5a0cbbe0922a -r 3166a35f5f0d server/src/remie/middleware/__init__.py diff -r 5a0cbbe0922a -r 3166a35f5f0d server/src/remie/middleware/cas_proxy_auth.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/remie/middleware/cas_proxy_auth.py Tue Jun 02 10:41:10 2015 +0200 @@ -0,0 +1,37 @@ +from urllib import urlencode +from urlparse import urlparse, urlunparse, parse_qsl + +from django.contrib.auth import authenticate, login + +from ldt.security import set_current_user + + +class CASAuthenticationMiddleware(object): + ''' + Middleware class for authenticating a user through a CAS Server via the CAS Proxy protocol. + The request must have a "cas_ticket" argument that contains the CAS Proxy ticket to be validated. + + Requires django-cas-ng authentication backend. + ''' + def process_request(self, request): + ticket = request.GET.get("casticket") + if ticket is not None: + parsed_url = urlparse(request.build_absolute_uri()) + # editing ticket parameter out of the request + new_query_params = urlencode([param for param in parse_qsl(parsed_url.query) if str(param[0]) != "casticket"]) + + service = urlunparse(( + parsed_url.scheme, + parsed_url.netloc, + parsed_url.path, + parsed_url.params, + new_query_params, + parsed_url.fragment + )) + + user = authenticate(ticket=ticket, service=service, request=request) + if user is None: + return False + request.user = user + login(request, user) + set_current_user(user) \ No newline at end of file diff -r 5a0cbbe0922a -r 3166a35f5f0d server/src/remieplt/settings/__init__.py --- a/server/src/remieplt/settings/__init__.py Wed May 27 15:34:06 2015 +0200 +++ b/server/src/remieplt/settings/__init__.py Tue Jun 02 10:41:10 2015 +0200 @@ -77,6 +77,7 @@ 'ldt.ldt_utils.middleware.swfupload.SWFUploadMiddleware', 'ldt.ldt_utils.middleware.userprofile.LanguageMiddleware', 'ldt.security.middleware.SecurityMiddleware', + 'remie.middleware.cas_proxy_auth.CASAuthenticationMiddleware' ) ROOT_URLCONF = 'remieplt.urls' @@ -154,6 +155,7 @@ # 'social.backends.facebook.FacebookOAuth2', 'guardian.backends.ObjectPermissionBackend', 'django.contrib.auth.backends.ModelBackend', + 'django_cas_ng.backends.CASBackend', ) diff -r 5a0cbbe0922a -r 3166a35f5f0d server/src/remieplt/urls.py --- a/server/src/remieplt/urls.py Wed May 27 15:34:06 2015 +0200 +++ b/server/src/remieplt/urls.py Tue Jun 02 10:41:10 2015 +0200 @@ -23,6 +23,7 @@ from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.views.generic import RedirectView +from remie.views import RemieBaseView js_info_dict = { 'packages': ('django.contrib.admin',), @@ -41,8 +42,11 @@ url(r'^accounts/', include('social.apps.django_app.urls', namespace='social')), url(r'^accounts/login/$',pf_login,{'template_name': 'registration/login.html'},name='auth_login'), + url(r'^accounts/cas/login/$', 'django_cas_ng.views.login'), + url(r'^accounts/cas/logout/$', 'django_cas_ng.views.logout'), url(r'^oauth/', include('oauth_provider.urls')), - + + url(r'^remie/$', RemieBaseView.as_view(), name="remie_base"), url(r'^/?$', RedirectView.as_view(url='ldt')),