def get(self, *args, **kwargs):
        req = prepare_from_django_request(self.request)
        auth = OneLogin_Saml2_Auth(req, self.get_saml_settings())

        return_url = self.request.GET.get('next', settings.LOGIN_REDIRECT_URL)

        return HttpResponseRedirect(auth.login(return_to=return_url))  # Method that builds and sends the AuthNRequest
 def get(self, request, *args, **kwargs):
     req = prepare_from_django_request(request)
     auth = OneLogin_Saml2_Auth(req, self.get_onelogin_settings())
     saml_settings = auth.get_settings()
     metadata = saml_settings.get_sp_metadata()
     errors = saml_settings.validate_metadata(metadata)
     if len(errors) == 0:
         return HttpResponse(content=metadata, content_type='text/xml')
     else:
         return HttpResponseServerError(content=', '.join(errors))
 def get(self, request, *args, **kwargs):
     req = prepare_from_django_request(request)
     auth = OneLogin_Saml2_Auth(req, self.get_saml_settings())
     saml_settings = auth.get_settings()
     metadata = saml_settings.get_sp_metadata()
     errors = saml_settings.validate_metadata(metadata)
     if len(errors) == 0:
         return HttpResponse(content=metadata, content_type='text/xml')
     else:
         return HttpResponseServerError(content=', '.join(errors))
 def post(self, request):
     req = prepare_from_django_request(request)
     auth = OneLogin_Saml2_Auth(req, self.get_saml_settings())
     auth.process_response()
     errors = auth.get_errors()
     if not errors:
         if auth.is_authenticated():
             user = authenticate(saml_authentication=auth)
             login(self.request, user)
             if 'RelayState' in req['post_data'] and \
               OneLogin_Saml2_Utils.get_self_url(req) != req['post_data']['RelayState']:
                 return HttpResponseRedirect(auth.redirect_to(req['post_data']['RelayState']))
             else:
                 return HttpResponseRedirect("/")
         else:
             raise PermissionDenied()
     else:
         logger.error(auth.get_last_error_reason(), exc_info=True)
         return HttpResponseBadRequest("Error when processing SAML Response: %s" % (', '.join(errors)))