コード例 #1
0
def test_server_can_send_to_trustable_peer_identity():
    """
    Uses internal metadata of zmq.Frame.get() to fetch identity of sender
    """
    from pseud._gevent import Client, Server

    server_id = 'server'
    endpoint = 'tcp://127.0.0.1:8989'
    server_public, server_secret = zmq.curve_keypair()
    security_plugin = 'trusted_curve'

    server = Server(
        server_id,
        security_plugin=security_plugin,
        public_key=server_public,
        secret_key=server_secret,
    )
    server.bind(endpoint)

    bob_public, bob_secret = server.auth_backend.known_identities['bob']
    client = Client(
        server_id,
        user_id='bob',
        security_plugin=security_plugin,
        public_key=bob_public,
        secret_key=bob_secret,
        peer_public_key=server_public,
    )
    client.connect(endpoint)
    assert server.socket.mechanism == zmq.CURVE
    assert client.socket.mechanism == zmq.CURVE

    server.start()
    client.start()

    @server.register_rpc(with_identity=True)
    def echo(peer_identity, message):
        return peer_identity, message

    result = client.echo('one').get()
    if zmq.zmq_version_info() >= (4, 1, 0):
        assert result == ('bob', 'one')
    else:
        assert result == ('', 'one')
    server.stop()
    client.stop()
コード例 #2
0
ファイル: test_auth.py プロジェクト: aldefalco/pseud
def test_server_can_send_to_trustable_peer_identity():
    """
    Uses internal metadata of zmq.Frame.get() to fetch identity of sender
    """
    from pseud._gevent import Client, Server

    server_id = 'server'
    endpoint = 'tcp://127.0.0.1:8989'
    server_public, server_secret = zmq.curve_keypair()
    security_plugin = 'trusted_curve'

    server = Server(server_id, security_plugin=security_plugin,
                    public_key=server_public,
                    secret_key=server_secret,
                    )
    server.bind(endpoint)

    bob_public, bob_secret = server.auth_backend.known_identities['bob']
    client = Client(server_id,
                    user_id='bob',
                    security_plugin=security_plugin,
                    public_key=bob_public,
                    secret_key=bob_secret,
                    peer_public_key=server_public,
                    )
    client.connect(endpoint)
    assert server.socket.mechanism == zmq.CURVE
    assert client.socket.mechanism == zmq.CURVE

    server.start()
    client.start()

    @server.register_rpc(with_identity=True)
    def echo(peer_identity, message):
        return peer_identity, message

    result = client.echo('one').get()
    if zmq.zmq_version_info() >= (4, 1, 0):
        assert result == ('bob', 'one')
    else:
        assert result == ('', 'one')
    server.stop()
    client.stop()