sources/saml: fix MetadataProcessor not working, add unittests

This commit is contained in:
Jens Langhammer 2020-07-12 18:33:42 +02:00
parent a943d060d2
commit 47ca566d06
2 changed files with 29 additions and 3 deletions

View File

@ -82,10 +82,10 @@ class MetadataProcessor:
sp_sso_descriptor.append(name_id_format) sp_sso_descriptor.append(name_id_format)
assertion_consumer_service = SubElement( assertion_consumer_service = SubElement(
sp_sso_descriptor, f"{{{NS_SAML_METADATA}}}" sp_sso_descriptor, f"{{{NS_SAML_METADATA}}}AssertionConsumerService"
) )
assertion_consumer_service.attrib["isDefault"] = True assertion_consumer_service.attrib["isDefault"] = "true"
assertion_consumer_service.attrib["index"] = 0 assertion_consumer_service.attrib["index"] = "0"
assertion_consumer_service.attrib["Binding"] = SAML_BINDING_POST assertion_consumer_service.attrib["Binding"] = SAML_BINDING_POST
assertion_consumer_service.attrib["Location"] = self.source.build_full_url( assertion_consumer_service.attrib["Location"] = self.source.build_full_url(
self.http_request self.http_request

View File

@ -0,0 +1,26 @@
"""SAML Source tests"""
from defusedxml import ElementTree
from django.test import RequestFactory, TestCase
from passbook.crypto.models import CertificateKeyPair
from passbook.sources.saml.models import SAMLSource
from passbook.sources.saml.processors.metadata import MetadataProcessor
class TestMetadataProcessor(TestCase):
"""Test MetadataProcessor"""
def setUp(self):
self.source = SAMLSource.objects.create(
slug="provider",
issuer="passbook",
signing_kp=CertificateKeyPair.objects.first(),
)
self.factory = RequestFactory()
def test_metadata(self):
"""Test Metadata generation being valid"""
request = self.factory.get("/")
xml = MetadataProcessor(self.source, request).build_entity_descriptor()
metadata = ElementTree.fromstring(xml)
self.assertEqual(metadata.attrib["entityID"], "passbook")