Пример #1
0
 def test_authn_request_http_redirect_right_signature(self):
     xml_message = generate_authn_request()
     pkey = open(os.path.join(DATA_DIR, 'sp.key'), 'rb').read()
     query_string = sign_http_redirect(xml_message,
                                       pkey,
                                       req_type='SAMLRequest')
     self.assertEqual(len(self.idp_server.ticket), 0)
     self.assertEqual(len(self.idp_server.responses), 0)
     response = self.test_client.get('/sso-test?{}'.format(query_string),
                                     follow_redirects=True)
     self.assertEqual(response.status_code, 200)
     response_text = response.get_data(as_text=True)
     self.assertIn(
         '<form class="Form Form--spaced u-margin-bottom-l " name="login" method="post" action="/login">',
         response_text)
     self.assertEqual(len(self.idp_server.ticket), 1)
     self.assertEqual(len(self.idp_server.responses), 0)
     key = list(self.idp_server.ticket.keys())[0]
     xmlstr = SAMLTree(self.idp_server.ticket[key]._xml_doc)
     xml_message = ET.fromstring(xml_message)
     xml_message = SAMLTree(xml_message)
     self.assertEqual(xml_message.id, xmlstr.id)
Пример #2
0
    def test_deserialization(self):
        xml = """\
<root>
    <child1>some data</child1>
    <child2 AnAttribute="more data"></child2>
    <SpecialChild3>
        <Item AnotherAttribute="foo"></Item>
        <Item EvenAnotherAttribute="bar"></Item>
    </SpecialChild3>
</root>"""
        xml_doc = objectify.fromstring(xml)
        saml_tree = SAMLTree(xml_doc, multi_occur_tags={'Item'})
        self.assertEqual(saml_tree.child1.text, 'some data')
        self.assertEqual(saml_tree.child1.tag, 'child1')
        self.assertEqual(saml_tree.child2.an_attribute, 'more data')
        self.assertEqual(len(saml_tree.special_child3.item), 2)
        self.assertEqual(saml_tree.special_child3.tag, 'special_child3')
        self.assertEqual(saml_tree.special_child3.item[0].another_attribute, 'foo')
        self.assertEqual(saml_tree.special_child3.item[1].even_another_attribute, 'bar')