code: def not_authenticated(self):
          if self.service:
              try:
                  service_pattern = ServicePattern.validate(self.service)
                  if self.gateway and not self.ajax:
                      list(messages.get_messages(self.request))
                      return HttpResponseRedirect(self.service)
                  if settings.CAS_SHOW_SERVICE_MESSAGES:
                      if self.request.session.get("authenticated") and self.renew:
                          messages.add_message(
                              self.request,
                              messages.WARNING,
                              _(u"Authentication renewal required by service %(name)s (%(url)s).") %
                              {'name': service_pattern.name, 'url': self.service}
                          )
                      else:
                          messages.add_message(
                              self.request,
                              messages.WARNING,
                              _(u"Authentication required by service %(name)s (%(url)s).") %
                              {'name': service_pattern.name, 'url': self.service}
                          )
              except ServicePattern.DoesNotExist:
                  if settings.CAS_SHOW_SERVICE_MESSAGES:
                      messages.add_message(
                          self.request,
                          messages.ERROR,
                          _(u'Service %s not allowed') % self.service
                      )
          if self.ajax:
              data = {
                  "status": "error",
                  "detail": "login required",
                  "url": utils.reverse_params("cas_server:login",  params=self.request.GET)
              }
              return json_response(self.request, data)
          else:
              if settings.CAS_FEDERATE:
                  if self.username and self.ticket:
                      return render(
                          self.request,
                          settings.CAS_LOGIN_TEMPLATE,
                          utils.context({
                              'form': self.form,
                              'auto_submit': True,
                              'post_url': reverse("cas_server:login")
                          })
                      )
                  else:
                      if (
                          self.request.COOKIES.get('remember_provider') and
                          FederatedIendityProvider.objects.filter(
                              suffix=self.request.COOKIES['remember_provider']
                          )
                      ):
                          params = utils.copy_params(self.request.GET)
                          url = utils.reverse_params(
                              "cas_server:federateAuth",
                              params=params,
                              kwargs=dict(provider=self.request.COOKIES['remember_provider'])
                          )
                          return HttpResponseRedirect(url)
                      else:
                          if self.renew and self.request.session.get("authenticated"):
                              try:
                                  user = FederatedUser.get_from_federated_username(
                                      self.request.session.get("username")
                                  )
                                  params = utils.copy_params(self.request.GET)
                                  url = utils.reverse_params(
                                      "cas_server:federateAuth",
                                      params=params,
                                      kwargs=dict(provider=user.provider.suffix)
                                  )
                                  return HttpResponseRedirect(url)
                              except FederatedUser.DoesNotExist:
                                  pass
                          return render(
                              self.request,
                              settings.CAS_LOGIN_TEMPLATE,
                              utils.context({
                                  'form': self.form,
                                  'post_url': reverse("cas_server:federateAuth")
                              })
                          )
              else:
                  return render(
                      self.request,
                      settings.CAS_LOGIN_TEMPLATE,
                      utils.context({'form': self.form})
                  )