Skip to content

Commit 26e9474

Browse files
committed
feat: prettify XML string output by registering default namespace prefixes
Fix #326
1 parent bbcbef3 commit 26e9474

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

src/saml2/__init__.py

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,31 @@
4444

4545
NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:assertion'
4646
# TEMPLATE = '{urn:oasis:names:tc:SAML:2.0:assertion}%s'
47-
# XSI_NAMESPACE = 'http://www.w3.org/2001/XMLSchema-instance'
47+
SAMLP_NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:protocol'
48+
XSI_NAMESPACE = 'http://www.w3.org/2001/XMLSchema-instance'
49+
XS_NAMESPACE = 'http://www.w3.org/2001/XMLSchema'
50+
DS_NAMESPACE = 'http://www.w3.org/2000/09/xmldsig#'
51+
MD_NAMESPACE = "urn:oasis:names:tc:SAML:2.0:metadata"
52+
MDATTR_NAMESPACE = 'urn:oasis:names:tc:SAML:metadata:attribute'
53+
MDUI_NAMESPACE = "urn:oasis:names:tc:SAML:metadata:ui"
54+
XENC_NAMESPACE = 'http://www.w3.org/2001/04/xmlenc#'
55+
ALG_NAMESPACE = 'urn:oasis:names:tc:SAML:metadata:algsupport'
56+
IDPDISC_NAMESPACE = 'urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol'
57+
ECP_NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp'
58+
OASIS_DEFAULT_NS_PREFIXES = {
59+
'saml': NAMESPACE,
60+
'samlp': SAMLP_NAMESPACE,
61+
'ds': DS_NAMESPACE,
62+
'xsi': XSI_NAMESPACE,
63+
'xs': XS_NAMESPACE,
64+
'xenc': XENC_NAMESPACE,
65+
'mdui': MDUI_NAMESPACE,
66+
'md': MD_NAMESPACE,
67+
'mdattr': MDATTR_NAMESPACE,
68+
'alg': ALG_NAMESPACE,
69+
'idpdisc': IDPDISC_NAMESPACE,
70+
'ecp': ECP_NAMESPACE,
71+
}
4872

4973
NAMEID_FORMAT_EMAILADDRESS = (
5074
"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress")
@@ -556,7 +580,8 @@ def _to_element_tree(self):
556580
self._add_members_to_element_tree(new_tree)
557581
return new_tree
558582

559-
def register_prefix(self, nspair):
583+
@staticmethod
584+
def register_prefix(nspair):
560585
"""
561586
Register with ElementTree a set of namespaces
562587
@@ -1048,3 +1073,6 @@ def is_required_attribute(cls, attr):
10481073
:return: True if required
10491074
"""
10501075
return cls.c_attributes[attr][REQUIRED]
1076+
1077+
1078+
SamlBase.register_prefix(OASIS_DEFAULT_NS_PREFIXES)

0 commit comments

Comments
 (0)