示例#1
0
def test_swami_1():
    md = metadata.MetaData(attrconv=ATTRCONV)
    md.import_metadata(_read_file(SWAMI_METADATA), "-")
    print len(md.entity)
    assert len(md.entity)
    idps = dict([(id, ent["idpsso"]) for id, ent in md.entity.items() if "idpsso" in ent])
    print idps
    assert idps.keys()
    idpsso = md.single_sign_on_service("https://idp.umu.se/saml2/idp/metadata.php")
    assert md.name("https://idp.umu.se/saml2/idp/metadata.php") == (u"Ume\xe5 University (SAML2)")
    assert len(idpsso) == 1
    assert idpsso == ["https://idp.umu.se/saml2/idp/SSOService.php"]
    print md._loc_key["https://idp.umu.se/saml2/idp/SSOService.php"]
    ssocerts = md.certs("https://idp.umu.se/saml2/idp/SSOService.php", "signing")
    print ssocerts
    assert len(ssocerts) == 1
    sps = dict([(id, ent["spsso"]) for id, ent in md.entity.items() if "spsso" in ent])

    acs_sp = []
    for nam, desc in sps.items():
        if desc[0].attribute_consuming_service:
            acs_sp.append(nam)

    # print md.wants('https://www.diva-portal.org/shibboleth')
    wants = md.attribute_requirement("https://connect8.sunet.se/shibboleth")
    lnamn = [to_local_name(md.attrconv, attr) for attr in wants[1]]
    assert _eq(lnamn, ["mail", "givenName", "eduPersonPrincipalName", "sn", "eduPersonScopedAffiliation"])

    wants = md.attribute_requirement("https://beta.lobber.se/shibboleth")
    assert wants[0] == []
    lnamn = [to_local_name(md.attrconv, attr) for attr in wants[1]]
    assert _eq(
        lnamn,
        ["eduPersonScopedAffiliation", "eduPersonEntitlement", "eduPersonPrincipalName", "sn", "mail", "givenName"],
    )
示例#2
0
def test_sp_metadata():
    md = metadata.MetaData(attrconv=ATTRCONV)
    md.import_metadata(_fix_valid_until(_read_file(SP_METADATA)), "-")

    print md.entity
    assert len(md.entity) == 1
    assert md.entity.keys() == ["urn:mace:umu.se:saml:roland:sp"]
    assert _eq(
        md.entity["urn:mace:umu.se:saml:roland:sp"].keys(), ["valid_until", "organization", "spsso", "contact_person"]
    )
    print md.entity["urn:mace:umu.se:saml:roland:sp"]["spsso"][0].keyswv()
    (req, opt) = md.attribute_requirement("urn:mace:umu.se:saml:roland:sp")
    print req
    assert len(req) == 3
    assert len(opt) == 1
    assert opt[0].name == "urn:oid:2.5.4.12"
    assert opt[0].friendly_name == "title"
    assert _eq([n.name for n in req], ["urn:oid:2.5.4.4", "urn:oid:2.5.4.42", "urn:oid:0.9.2342.19200300.100.1.3"])
    assert _eq([n.friendly_name for n in req], ["surName", "givenName", "mail"])
示例#3
0
 def attribute_requirement(self, entity_id, index=0):
     for md in self.metadata.values():
         if entity_id in md:
             return md.attribute_requirement(entity_id, index)
示例#4
0
 def attribute_requirement(self, entity_id, index=0):
     for md in self.metadata.values():
         if entity_id in md:
             return md.attribute_requirement(entity_id, index)