diff --git a/mellon/views.py b/mellon/views.py index 4697eca..40fd2bf 100644 --- a/mellon/views.py +++ b/mellon/views.py @@ -3,6 +3,7 @@ import requests import lasso import uuid from requests.exceptions import RequestException +from xml.sax.saxutils import escape from django.core.urlresolvers import reverse from django.views.generic import View @@ -360,6 +361,15 @@ class LoginView(ProfileMixin, LogMixin, View): req_authncontext = lasso.Samlp2RequestedAuthnContext() authn_request.requestedAuthnContext = req_authncontext req_authncontext.authnContextClassRef = authn_classref + + authn_request.extensions = lasso.Samlp2Extensions() + authn_request.extensions.setOriginalXmlnode( + ''' + %s + ''' % + escape(request.build_absolute_uri(next_url or '/'))) self.set_next_url(next_url) login.buildAuthnRequestMsg() except lasso.Error, e: