def test_building_saml_redirect_uri(self): try: from urlparse import urlparse except ImportError: from urllib.parse import urlparse app = Application(client=self.client, properties={'href': 'apphref'}) ret = app.build_saml_idp_redirect_url('http://localhost/', 'apphref/saml/sso/idpRedirect') try: jwt_response = urlparse(ret).query.split('=')[1] except: self.fail("Failed to parse ID site redirect uri") try: decoded_data = jwt.decode(jwt_response, verify=False, algorithms=['HS256']) except jwt.DecodeError: self.fail("Invaid JWT generated.") self.assertIsNotNone(decoded_data.get('iat')) self.assertIsNotNone(decoded_data.get('jti')) self.assertIsNotNone(decoded_data.get('iss')) self.assertIsNotNone(decoded_data.get('sub')) self.assertIsNotNone(decoded_data.get('cb_uri')) self.assertEqual(decoded_data.get('cb_uri'), 'http://localhost/') self.assertIsNone(decoded_data.get('path')) self.assertIsNone(decoded_data.get('state')) ret = app.build_saml_idp_redirect_url('http://testserver/', 'apphref/saml/sso/idpRedirect', path='/#/register', state='test') try: jwt_response = urlparse(ret).query.split('=')[1] except: self.fail("Failed to parse SAML redirect uri") try: decoded_data = jwt.decode(jwt_response, verify=False, algorithms=['HS256']) except jwt.DecodeError: self.fail("Invaid JWT generated.") self.assertEqual(decoded_data.get('path'), '/#/register') self.assertEqual(decoded_data.get('state'), 'test')
def test_building_saml_redirect_uri(self): try: from urlparse import urlparse except ImportError: from urllib.parse import urlparse app = Application(client=self.client, properties={'href': 'apphref'}) ret = app.build_saml_idp_redirect_url( 'http://localhost/', 'apphref/saml/sso/idpRedirect') try: jwt_response = urlparse(ret).query.split('=')[1] except: self.fail("Failed to parse ID site redirect uri") try: decoded_data = jwt.decode( jwt_response, verify=False, algorithms=['HS256']) except jwt.DecodeError: self.fail("Invaid JWT generated.") self.assertIsNotNone(decoded_data.get('iat')) self.assertIsNotNone(decoded_data.get('jti')) self.assertIsNotNone(decoded_data.get('iss')) self.assertIsNotNone(decoded_data.get('sub')) self.assertIsNotNone(decoded_data.get('cb_uri')) self.assertEqual(decoded_data.get('cb_uri'), 'http://localhost/') self.assertIsNone(decoded_data.get('path')) self.assertIsNone(decoded_data.get('state')) ret = app.build_saml_idp_redirect_url( 'http://testserver/', 'apphref/saml/sso/idpRedirect', path='/#/register', state='test') try: jwt_response = urlparse(ret).query.split('=')[1] except: self.fail("Failed to parse SAML redirect uri") try: decoded_data = jwt.decode( jwt_response, verify=False, algorithms=['HS256']) except jwt.DecodeError: self.fail("Invaid JWT generated.") self.assertEqual(decoded_data.get('path'), '/#/register') self.assertEqual(decoded_data.get('state'), 'test')