Example #1
0
 def test_get_logout_url(self):
     """
     When a logout URL is configured, ``get_logout_url()`` should return
     the URL and ``None`` otherwise.
     """
     self.assertEqual(get_logout_url('http://www.example.com'), 'https://example.com/logout')
     self.assertIsNone(get_logout_url('http://example.org'))
 def test_get_logout_url(self):
     """
     When a logout URL is configured, ``get_logout_url()`` should return
     the URL and ``None`` otherwise.
     """
     self.assertEqual(get_logout_url('http://www.example.com'),
                      'https://example.com/logout')
     self.assertIsNone(get_logout_url('http://example.org'))
Example #3
0
 def request_sign_out(self, session=requests):
     """
     Send a POST request to the ``ServiceTicket``s logout URL to
     request sign-out.
     """
     if logout_allowed(self.service):
         request = SingleSignOutRequest(context={'ticket': self})
         url = get_logout_url(self.service) or self.service
         session.post(url, data={'logoutRequest': request.render_content()})
         logger.info("Single sign-out request sent to %s" % url)
Example #4
0
 def request_sign_out(self, session=requests):
     """
     Send a POST request to the ``ServiceTicket``s logout URL to
     request sign-out.
     """
     if logout_allowed(self.service):
         request = SingleSignOutRequest(context={'ticket': self})
         url = get_logout_url(self.service) or self.service
         session.post(url, data={'logoutRequest': request.render_content()})
         logger.info("Single sign-out request sent to %s" % url)
    def test_invalid_custom_backend(self):
        """
        Test that a custom service backend without properly defined
        attributes raises ``NotImplementedError``
        """

        with self.assertRaises(NotImplementedError):
            service_allowed('http://www.example.com')

        with self.assertRaises(NotImplementedError):
            get_callbacks('http://www.example.com')

        with self.assertRaises(NotImplementedError):
            get_logout_url('http://www.example.com')

        with self.assertRaises(NotImplementedError):
            logout_allowed('http://www.example.com')

        with self.assertRaises(NotImplementedError):
            proxy_allowed('http://www.example.com')
Example #6
0
 def handle(self, **options):
     service = options['service']
     pgturl = options['pgturl']
     if service_allowed(service):
         self.stdout.write('Valid Service: %s' % service)
         self.stdout.write('Proxy Allowed: %s' % proxy_allowed(service))
         if pgturl:
             self.stdout.write('Proxy Callback Allowed: %s' %
                               proxy_callback_allowed(service, pgturl))
         self.stdout.write('Logout Allowed: %s' % logout_allowed(service))
         self.stdout.write('Logout URL: %s' % get_logout_url(service))
         self.stdout.write('Callbacks: %s' % get_callbacks(service))
     else:
         self.stdout.write(self.style.ERROR('Invalid Service: %s' %
                                            service))
Example #7
0
 def request_sign_out(self):
     """
     Send a POST request to the ``ServiceTicket``s logout URL to
     request sign-out.
     """
     if not logout_allowed(self.service):
         return
     request = SingleSignOutRequest(context={'ticket': self})
     url = get_logout_url(self.service) or self.service
     try:
         resp = requests.post(url, data={'logoutRequest': request.render_content()})
         resp.raise_for_status()
     except requests.exceptions.RequestException as e:
         logger.warning("Single sign-out request to %s returned %s" % (url, e))
     else:
         logger.debug("Single sign-out request sent to %s" % url)
Example #8
0
 def request_sign_out(self):
     """
     Send a POST request to the ``ServiceTicket``s logout URL to
     request sign-out.
     """
     if not logout_allowed(self.service):
         return
     request = SingleSignOutRequest(context={'ticket': self})
     url = get_logout_url(self.service) or self.service
     try:
         resp = requests.post(
             url, data={'logoutRequest': request.render_content()})
         resp.raise_for_status()
     except requests.exceptions.RequestException as e:
         logger.warning("Single sign-out request to %s returned %s" %
                        (url, e))
     else:
         logger.debug("Single sign-out request sent to %s" % url)
Example #9
0
    def handle(self, **options):
        self.service = options['service']
        self.pgturl = options['pgturl']
        self.verbosity = options['verbosity']

        if service_allowed(self.service):
            try:
                self.stdout.write(self.style.SUCCESS("Valid service: %s" % self.service))
            except AttributeError:
                # Django 1.8 does not have the "Success" style
                self.stdout.write(self.style.SQL_FIELD("Valid service: %s" % self.service))
            if self.verbosity >= 1:
                self.format_output('Proxy allowed', proxy_allowed(self.service))
                if self.pgturl:
                    self.format_output('Proxy callback allowed', proxy_callback_allowed(self.service, self.pgturl))
                self.format_output('Logout allowed', logout_allowed(self.service))
                self.format_output('Logout URL', get_logout_url(self.service))
                self.format_output('Callbacks', ', '.join(get_callbacks(self.service)))
            if self.verbosity >= 2:
                self.format_output('Backend', get_backend_path(self.service))
        else:
            self.stdout.write(self.style.ERROR("Invalid service: %s" % self.service))