Skip to content

Commit e66e2cf

Browse files
author
Roland Hedberg
committed
Editorial
1 parent f2c26c5 commit e66e2cf

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

src/saml2/soap.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,80 +36,99 @@
3636

3737
logger = logging.getLogger(__name__)
3838

39+
3940
class XmlParseError(Exception):
4041
pass
4142

43+
4244
class WrongMessageType(Exception):
4345
pass
4446

47+
4548
def parse_soap_enveloped_saml_response(text):
4649
tags = ['{%s}Response' % SAMLP_NAMESPACE,
4750
'{%s}LogoutResponse' % SAMLP_NAMESPACE]
4851
return parse_soap_enveloped_saml_thingy(text, tags)
4952

53+
5054
def parse_soap_enveloped_saml_logout_response(text):
5155
tags = ['{%s}Response' % SAMLP_NAMESPACE,
5256
'{%s}LogoutResponse' % SAMLP_NAMESPACE]
5357
return parse_soap_enveloped_saml_thingy(text, tags)
5458

59+
5560
def parse_soap_enveloped_saml_attribute_query(text):
5661
expected_tag = '{%s}AttributeQuery' % SAMLP_NAMESPACE
5762
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
5863

64+
5965
def parse_soap_enveloped_saml_attribute_response(text):
6066
tags = ['{%s}Response' % SAMLP_NAMESPACE,
6167
'{%s}AttributeResponse' % SAMLP_NAMESPACE]
6268
return parse_soap_enveloped_saml_thingy(text, tags)
6369

70+
6471
def parse_soap_enveloped_saml_logout_request(text):
6572
expected_tag = '{%s}LogoutRequest' % SAMLP_NAMESPACE
6673
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
6774

75+
6876
def parse_soap_enveloped_saml_authn_request(text):
6977
expected_tag = '{%s}AuthnRequest' % SAMLP_NAMESPACE
7078
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
7179

80+
7281
def parse_soap_enveloped_saml_artifact_resolve(text):
7382
expected_tag = '{%s}ArtifactResolve' % SAMLP_NAMESPACE
7483
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
7584

85+
7686
def parse_soap_enveloped_saml_artifact_response(text):
7787
expected_tag = '{%s}ArtifactResponse' % SAMLP_NAMESPACE
7888
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
7989

90+
8091
def parse_soap_enveloped_saml_name_id_mapping_request(text):
8192
expected_tag = '{%s}NameIDMappingRequest' % SAMLP_NAMESPACE
8293
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
8394

95+
8496
def parse_soap_enveloped_saml_name_id_mapping_response(text):
8597
expected_tag = '{%s}NameIDMappingResponse' % SAMLP_NAMESPACE
8698
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
8799

100+
88101
def parse_soap_enveloped_saml_manage_name_id_request(text):
89102
expected_tag = '{%s}ManageNameIDRequest' % SAMLP_NAMESPACE
90103
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
91104

105+
92106
def parse_soap_enveloped_saml_manage_name_id_response(text):
93107
expected_tag = '{%s}ManageNameIDResponse' % SAMLP_NAMESPACE
94108
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
95109

110+
96111
def parse_soap_enveloped_saml_assertion_id_request(text):
97112
expected_tag = '{%s}AssertionIDRequest' % SAMLP_NAMESPACE
98113
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
99114

115+
100116
def parse_soap_enveloped_saml_assertion_id_response(text):
101117
tags = ['{%s}Response' % SAMLP_NAMESPACE,
102-
'{%s}AssertionIDResponse' % SAMLP_NAMESPACE]
118+
'{%s}AssertionIDResponse' % SAMLP_NAMESPACE]
103119
return parse_soap_enveloped_saml_thingy(text, tags)
104120

121+
105122
def parse_soap_enveloped_saml_authn_query(text):
106123
expected_tag = '{%s}AuthnQuery' % SAMLP_NAMESPACE
107124
return parse_soap_enveloped_saml_thingy(text, [expected_tag])
108125

126+
109127
def parse_soap_enveloped_saml_authn_query_response(text):
110128
tags = ['{%s}Response' % SAMLP_NAMESPACE]
111129
return parse_soap_enveloped_saml_thingy(text, tags)
112130

131+
113132
def parse_soap_enveloped_saml_authn_response(text):
114133
tags = ['{%s}Response' % SAMLP_NAMESPACE]
115134
return parse_soap_enveloped_saml_thingy(text, tags)
@@ -154,9 +173,10 @@ def parse_soap_enveloped_saml_thingy(text, expected_tags):
154173

155174
NS_AND_TAG = re.compile("\{([^}]+)\}(.*)")
156175

176+
157177
def instanciate_class(item, modules):
158178
m = NS_AND_TAG.match(item.tag)
159-
ns,tag = m.groups()
179+
ns, tag = m.groups()
160180
for module in modules:
161181
if module.NAMESPACE == ns:
162182
try:
@@ -166,6 +186,7 @@ def instanciate_class(item, modules):
166186
continue
167187
raise Exception("Unknown class: ns='%s', tag='%s'" % (ns, tag))
168188

189+
169190
def class_instances_from_soap_enveloped_saml_thingies(text, modules):
170191
"""Parses a SOAP enveloped header and body SAML thing and returns the
171192
thing as a dictionary class instance.
@@ -181,7 +202,7 @@ def class_instances_from_soap_enveloped_saml_thingies(text, modules):
181202

182203
assert envelope.tag == '{%s}Envelope' % soapenv.NAMESPACE
183204
assert len(envelope) >= 1
184-
env = {"header":[], "body":None}
205+
env = {"header": [], "body": None}
185206

186207
for part in envelope:
187208
if part.tag == '{%s}Body' % soapenv.NAMESPACE:
@@ -193,6 +214,7 @@ def class_instances_from_soap_enveloped_saml_thingies(text, modules):
193214

194215
return env
195216

217+
196218
def open_soap_envelope(text):
197219
"""
198220
@@ -206,7 +228,7 @@ def open_soap_envelope(text):
206228

207229
assert envelope.tag == '{%s}Envelope' % soapenv.NAMESPACE
208230
assert len(envelope) >= 1
209-
content = {"header":[], "body":None}
231+
content = {"header": [], "body": None}
210232

211233
for part in envelope:
212234
if part.tag == '{%s}Body' % soapenv.NAMESPACE:
@@ -219,6 +241,7 @@ def open_soap_envelope(text):
219241

220242
return content
221243

244+
222245
def make_soap_enveloped_saml_thingy(thingy, headers=None):
223246
""" Returns a soap envelope containing a SAML request
224247
as a text string.
@@ -238,6 +261,7 @@ def make_soap_enveloped_saml_thingy(thingy, headers=None):
238261

239262
return "%s" % soap_envelope
240263

264+
241265
def soap_fault(message=None, actor=None, code=None, detail=None):
242266
""" Create a SOAP Fault message
243267

0 commit comments

Comments
 (0)