コード例 #1
0
ファイル: interaction.py プロジェクト: simudream/idp_monitor
    def __call__(self, _, conv, location, *args):
        _cli = conv.client
        disco = DiscoveryServer(config=_cli.config)
        logger.debug("Parsing discovery service request")
        dsr = disco.parse_discovery_service_request(location)
        logger.debug("=> %s" % (dsr, ))

        # Use metadata to find the SP endpoint
        eid = dsr["entityID"][0]

        # verify that the return url is the one register in the metadata
        if not disco.verify_return(eid, dsr["return"]):
            logger.debug("Discovery request return address not in Metadata")
            raise Error("Discovery request return address not in Metadata")

        logger.debug("Creating discovery service response")
        return_url = disco.create_discovery_service_response(
            dsr["return"], dsr["returnIDParam"], self.args["entity_id"])

        logger.debug("=> %s" % return_url)
        resp = Dresponse()
        resp.headers = {"location": return_url}
        resp.status_code = 302
        resp.text = "redirect to SP"
        return resp
コード例 #2
0
ファイル: interaction.py プロジェクト: simudream/idp_monitor
    def __call__(self, _, conv, location, *args):
        _cli = conv.client
        disco = DiscoveryServer(config=_cli.config)
        logger.debug("Parsing discovery service request")
        dsr = disco.parse_discovery_service_request(location)
        logger.debug("=> %s" % (dsr,))

        # Use metadata to find the SP endpoint
        eid = dsr["entityID"][0]

        # verify that the return url is the one register in the metadata
        if not disco.verify_return(eid, dsr["return"]):
            logger.debug("Discovery request return address not in Metadata")
            raise Error("Discovery request return address not in Metadata")

        logger.debug("Creating discovery service response")
        return_url = disco.create_discovery_service_response(
            dsr["return"], dsr["returnIDParam"], self.args["entity_id"]
        )

        logger.debug("=> %s" % return_url)
        resp = Dresponse()
        resp.headers = {"location": return_url}
        resp.status_code = 302
        resp.text = "redirect to SP"
        return resp
コード例 #3
0
def test_construct_deconstruct_request():
    sp = Saml2Client(config_file="servera_conf")
    url = sp.create_discovery_service_request("http://example.com/saml/disco",
                                              "https://example.com/saml/sp.xml",
                                              is_passive=True,
                                              returnIDParam="foo",
                                              return_url="https://example.com/saml/sp/disc")

    print url

    ds = DiscoveryServer(config_file="disco_conf")
    dsr = ds.parse_discovery_service_request(url)
    # policy is added by the parsing and verifying method
    assert _eq(dsr.keys(),["return_url", "entityID", "returnIDParam",
                           "isPassive", "policy"])
コード例 #4
0
def test_construct_deconstruct_response():
    sp = Saml2Client(config_file=dotname("servera_conf"))
    url = sp.create_discovery_service_request(
        "http://example.com/saml/disco",
        "https://example.com/saml/sp.xml",
        is_passive=True,
        returnIDParam="foo",
        return_url="https://example.com/saml/sp/disc")
    ds = DiscoveryServer(config_file=dotname("disco_conf"))
    dsr = ds.parse_discovery_service_request(url)
    args = dict([(key, dsr[key]) for key in ["returnIDParam", "return"]])
    url = ds.create_discovery_service_response(
        entity_id="https://example.com/saml/idp.xml", **args)

    idp_id = sp.parse_discovery_service_response(url, returnIDParam="foo")
    assert idp_id == "https://example.com/saml/idp.xml"
コード例 #5
0
def test_construct_deconstruct_request():
    sp = Saml2Client(config_file=dotname("servera_conf"))
    url = sp.create_discovery_service_request(
        "http://example.com/saml/disco",
        "https://example.com/saml/sp.xml",
        is_passive=True,
        returnIDParam="foo",
        return_url="https://example.com/saml/sp/disc")

    print(url)

    ds = DiscoveryServer(config_file=dotname("disco_conf"))
    dsr = ds.parse_discovery_service_request(url)
    # policy is added by the parsing and verifying method
    assert _eq(list(dsr.keys()),
               ["return", "entityID", "returnIDParam", "isPassive", "policy"])
コード例 #6
0
ファイル: test_69_discovery.py プロジェクト: Amli/pysaml2
def test_construct_deconstruct_response():
    sp = Saml2Client(config_file=dotname("servera_conf"))
    url = sp.create_discovery_service_request("http://example.com/saml/disco",
                                              "https://example.com/saml/sp.xml",
                                              isPassive=True,
                                              returnIDParam="foo",
                                              return_url="https://example.com/saml/sp/disc")
    ds = DiscoveryServer(config_file=dotname("disco_conf"))
    dsr = ds.parse_discovery_service_request(url)
    args = dict([(key, dsr[key]) for key in ["returnIDParam", "return"]])
    url = ds.create_discovery_service_response(
        entity_id="https://example.com/saml/idp.xml",
        **args)

    idp_id = sp.parse_discovery_service_response(url, returnIDParam="foo")
    assert idp_id == "https://example.com/saml/idp.xml"
コード例 #7
0
def test_verify():
    ds = DiscoveryServer(config_file=dotname("disco_conf"))
    assert ds
    assert ds.verify_sp_in_metadata("urn:mace:example.com:saml:roland:sp")
コード例 #8
0
ファイル: test_69_discovery.py プロジェクト: Amli/pysaml2
def test_verify():
    ds = DiscoveryServer(config_file=dotname("disco_conf"))
    assert ds
    assert ds.verify_sp_in_metadata("urn:mace:example.com:saml:roland:sp")