Editorial
This commit is contained in:
@@ -36,80 +36,99 @@ except ImportError:
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class XmlParseError(Exception):
|
class XmlParseError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class WrongMessageType(Exception):
|
class WrongMessageType(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_response(text):
|
def parse_soap_enveloped_saml_response(text):
|
||||||
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
||||||
'{%s}LogoutResponse' % SAMLP_NAMESPACE]
|
'{%s}LogoutResponse' % SAMLP_NAMESPACE]
|
||||||
return parse_soap_enveloped_saml_thingy(text, tags)
|
return parse_soap_enveloped_saml_thingy(text, tags)
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_logout_response(text):
|
def parse_soap_enveloped_saml_logout_response(text):
|
||||||
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
||||||
'{%s}LogoutResponse' % SAMLP_NAMESPACE]
|
'{%s}LogoutResponse' % SAMLP_NAMESPACE]
|
||||||
return parse_soap_enveloped_saml_thingy(text, tags)
|
return parse_soap_enveloped_saml_thingy(text, tags)
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_attribute_query(text):
|
def parse_soap_enveloped_saml_attribute_query(text):
|
||||||
expected_tag = '{%s}AttributeQuery' % SAMLP_NAMESPACE
|
expected_tag = '{%s}AttributeQuery' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_attribute_response(text):
|
def parse_soap_enveloped_saml_attribute_response(text):
|
||||||
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
||||||
'{%s}AttributeResponse' % SAMLP_NAMESPACE]
|
'{%s}AttributeResponse' % SAMLP_NAMESPACE]
|
||||||
return parse_soap_enveloped_saml_thingy(text, tags)
|
return parse_soap_enveloped_saml_thingy(text, tags)
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_logout_request(text):
|
def parse_soap_enveloped_saml_logout_request(text):
|
||||||
expected_tag = '{%s}LogoutRequest' % SAMLP_NAMESPACE
|
expected_tag = '{%s}LogoutRequest' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_authn_request(text):
|
def parse_soap_enveloped_saml_authn_request(text):
|
||||||
expected_tag = '{%s}AuthnRequest' % SAMLP_NAMESPACE
|
expected_tag = '{%s}AuthnRequest' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_artifact_resolve(text):
|
def parse_soap_enveloped_saml_artifact_resolve(text):
|
||||||
expected_tag = '{%s}ArtifactResolve' % SAMLP_NAMESPACE
|
expected_tag = '{%s}ArtifactResolve' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_artifact_response(text):
|
def parse_soap_enveloped_saml_artifact_response(text):
|
||||||
expected_tag = '{%s}ArtifactResponse' % SAMLP_NAMESPACE
|
expected_tag = '{%s}ArtifactResponse' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_name_id_mapping_request(text):
|
def parse_soap_enveloped_saml_name_id_mapping_request(text):
|
||||||
expected_tag = '{%s}NameIDMappingRequest' % SAMLP_NAMESPACE
|
expected_tag = '{%s}NameIDMappingRequest' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_name_id_mapping_response(text):
|
def parse_soap_enveloped_saml_name_id_mapping_response(text):
|
||||||
expected_tag = '{%s}NameIDMappingResponse' % SAMLP_NAMESPACE
|
expected_tag = '{%s}NameIDMappingResponse' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_manage_name_id_request(text):
|
def parse_soap_enveloped_saml_manage_name_id_request(text):
|
||||||
expected_tag = '{%s}ManageNameIDRequest' % SAMLP_NAMESPACE
|
expected_tag = '{%s}ManageNameIDRequest' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_manage_name_id_response(text):
|
def parse_soap_enveloped_saml_manage_name_id_response(text):
|
||||||
expected_tag = '{%s}ManageNameIDResponse' % SAMLP_NAMESPACE
|
expected_tag = '{%s}ManageNameIDResponse' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_assertion_id_request(text):
|
def parse_soap_enveloped_saml_assertion_id_request(text):
|
||||||
expected_tag = '{%s}AssertionIDRequest' % SAMLP_NAMESPACE
|
expected_tag = '{%s}AssertionIDRequest' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_assertion_id_response(text):
|
def parse_soap_enveloped_saml_assertion_id_response(text):
|
||||||
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
tags = ['{%s}Response' % SAMLP_NAMESPACE,
|
||||||
'{%s}AssertionIDResponse' % SAMLP_NAMESPACE]
|
'{%s}AssertionIDResponse' % SAMLP_NAMESPACE]
|
||||||
return parse_soap_enveloped_saml_thingy(text, tags)
|
return parse_soap_enveloped_saml_thingy(text, tags)
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_authn_query(text):
|
def parse_soap_enveloped_saml_authn_query(text):
|
||||||
expected_tag = '{%s}AuthnQuery' % SAMLP_NAMESPACE
|
expected_tag = '{%s}AuthnQuery' % SAMLP_NAMESPACE
|
||||||
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_authn_query_response(text):
|
def parse_soap_enveloped_saml_authn_query_response(text):
|
||||||
tags = ['{%s}Response' % SAMLP_NAMESPACE]
|
tags = ['{%s}Response' % SAMLP_NAMESPACE]
|
||||||
return parse_soap_enveloped_saml_thingy(text, tags)
|
return parse_soap_enveloped_saml_thingy(text, tags)
|
||||||
|
|
||||||
|
|
||||||
def parse_soap_enveloped_saml_authn_response(text):
|
def parse_soap_enveloped_saml_authn_response(text):
|
||||||
tags = ['{%s}Response' % SAMLP_NAMESPACE]
|
tags = ['{%s}Response' % SAMLP_NAMESPACE]
|
||||||
return parse_soap_enveloped_saml_thingy(text, tags)
|
return parse_soap_enveloped_saml_thingy(text, tags)
|
||||||
@@ -154,6 +173,7 @@ import re
|
|||||||
|
|
||||||
NS_AND_TAG = re.compile("\{([^}]+)\}(.*)")
|
NS_AND_TAG = re.compile("\{([^}]+)\}(.*)")
|
||||||
|
|
||||||
|
|
||||||
def instanciate_class(item, modules):
|
def instanciate_class(item, modules):
|
||||||
m = NS_AND_TAG.match(item.tag)
|
m = NS_AND_TAG.match(item.tag)
|
||||||
ns, tag = m.groups()
|
ns, tag = m.groups()
|
||||||
@@ -166,6 +186,7 @@ def instanciate_class(item, modules):
|
|||||||
continue
|
continue
|
||||||
raise Exception("Unknown class: ns='%s', tag='%s'" % (ns, tag))
|
raise Exception("Unknown class: ns='%s', tag='%s'" % (ns, tag))
|
||||||
|
|
||||||
|
|
||||||
def class_instances_from_soap_enveloped_saml_thingies(text, modules):
|
def class_instances_from_soap_enveloped_saml_thingies(text, modules):
|
||||||
"""Parses a SOAP enveloped header and body SAML thing and returns the
|
"""Parses a SOAP enveloped header and body SAML thing and returns the
|
||||||
thing as a dictionary class instance.
|
thing as a dictionary class instance.
|
||||||
@@ -193,6 +214,7 @@ def class_instances_from_soap_enveloped_saml_thingies(text, modules):
|
|||||||
|
|
||||||
return env
|
return env
|
||||||
|
|
||||||
|
|
||||||
def open_soap_envelope(text):
|
def open_soap_envelope(text):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -219,6 +241,7 @@ def open_soap_envelope(text):
|
|||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
|
|
||||||
def make_soap_enveloped_saml_thingy(thingy, headers=None):
|
def make_soap_enveloped_saml_thingy(thingy, headers=None):
|
||||||
""" Returns a soap envelope containing a SAML request
|
""" Returns a soap envelope containing a SAML request
|
||||||
as a text string.
|
as a text string.
|
||||||
@@ -238,6 +261,7 @@ def make_soap_enveloped_saml_thingy(thingy, headers=None):
|
|||||||
|
|
||||||
return "%s" % soap_envelope
|
return "%s" % soap_envelope
|
||||||
|
|
||||||
|
|
||||||
def soap_fault(message=None, actor=None, code=None, detail=None):
|
def soap_fault(message=None, actor=None, code=None, detail=None):
|
||||||
""" Create a SOAP Fault message
|
""" Create a SOAP Fault message
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user