1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
from pathutils import full_path as expand_full_path
from pytest import mark
from pytest import raises
from saml2.xml.schema import XMLSchemaError
from saml2.xml.schema import validate as validate_doc_with_schema
@mark.parametrize("doc", ["invalid_metadata_file.xml", "empty_metadata_file.xml"])
def test_invalid_saml_metadata_doc(doc):
with raises(XMLSchemaError):
validate_doc_with_schema(expand_full_path(doc))
@mark.parametrize(
"doc",
[
"InCommon-metadata.xml",
"idp.xml",
"idp_2.xml",
"idp_aa.xml",
"idp_all.xml",
"idp_example.xml",
"idp_soap.xml",
"entity_cat_re.xml",
"entity_cat_re_nren.xml",
"entity_cat_rs.xml",
"entity_cat_sfs_hei.xml",
"entity_esi_and_coco_sp.xml",
"entity_no_friendly_name_sp.xml",
"extended.xml",
"idp_slo_redirect.xml",
"idp_uiinfo.xml",
"metadata.aaitest.xml",
"metadata.xml",
"metadata_cert.xml",
"metadata_example.xml",
"metadata_sp_1.xml",
"metadata_sp_1_no_encryption.xml",
"metadata_sp_2.xml",
"metasp.xml",
"pdp_meta.xml",
"servera.xml",
"sp.xml",
"sp_slo_redirect.xml",
# XXX "swamid-1.0.xml",
# XXX "swamid-2.0.xml",
# TODO include the fed namespace
# TODO see https://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html
"urn-mace-swami.se-swamid-test-1.0-metadata.xml",
"uu.xml",
"vo_metadata.xml",
],
)
def test_valid_saml_metadata_doc(doc):
result = validate_doc_with_schema(expand_full_path(doc))
assert result == None
@mark.parametrize(
"doc",
[
"attribute_response.xml",
"okta_response.xml",
"simplesamlphp_authnresponse.xml",
"saml2_response.xml",
"saml_false_signed.xml",
"saml_hok.xml",
"saml_hok_invalid.xml",
"saml_signed.xml",
"saml_unsigned.xml",
],
)
def test_valid_saml_response_doc(doc):
result = validate_doc_with_schema(expand_full_path(doc))
assert result == None
@mark.parametrize("doc", ["encrypted_attribute_statement.xml"])
def test_valid_saml_partial_doc(doc):
result = validate_doc_with_schema(expand_full_path(doc))
assert result == None
@mark.parametrize("doc", ["eidas_response.xml"])
def test_valid_eidas_saml_response_doc(doc):
result = validate_doc_with_schema(expand_full_path(doc))
assert result == None
|