Skip to content

Commit e06dc29

Browse files
committed
Issue #326: prettify XML string output by registering default namespace prefixes
1 parent fc42b2a commit e06dc29

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")
@@ -548,7 +572,8 @@ def _to_element_tree(self):
548572
self._add_members_to_element_tree(new_tree)
549573
return new_tree
550574

551-
def register_prefix(self, nspair):
575+
@staticmethod
576+
def register_prefix(nspair):
552577
"""
553578
Register with ElementTree a set of namespaces
554579
@@ -1032,3 +1057,6 @@ def is_required_attribute(cls, attr):
10321057
:return: True if required
10331058
"""
10341059
return cls.c_attributes[attr][REQUIRED]
1060+
1061+
1062+
SamlBase.register_prefix(OASIS_DEFAULT_NS_PREFIXES)

0 commit comments

Comments
 (0)