summaryrefslogtreecommitdiffstats
path: root/external_libs/python/pyzmq-14.7.0/examples/security/woodhouse.py
diff options
context:
space:
mode:
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/security/woodhouse.py')
-rw-r--r--external_libs/python/pyzmq-14.7.0/examples/security/woodhouse.py90
1 files changed, 0 insertions, 90 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/security/woodhouse.py b/external_libs/python/pyzmq-14.7.0/examples/security/woodhouse.py
deleted file mode 100644
index 0db97343..00000000
--- a/external_libs/python/pyzmq-14.7.0/examples/security/woodhouse.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python
-
-'''
-Woodhouse extends Strawhouse with a name and password check.
-
-This uses the PLAIN mechanism which does plain-text username and password authentication).
-It's not really secure, and anyone sniffing the network (trivial with WiFi)
-can capture passwords and then login.
-
-Author: Chris Laws
-'''
-
-import logging
-import sys
-
-import zmq
-import zmq.auth
-from zmq.auth.thread import ThreadAuthenticator
-
-def run():
- '''Run woodhouse example'''
-
- valid_client_test_pass = False
- invalid_client_test_pass = False
-
- ctx = zmq.Context.instance()
-
- # Start an authenticator for this context.
- auth = ThreadAuthenticator(ctx)
- auth.start()
- auth.allow('127.0.0.1')
- # Instruct authenticator to handle PLAIN requests
- auth.configure_plain(domain='*', passwords={'admin': 'secret'})
-
- server = ctx.socket(zmq.PUSH)
- server.plain_server = True # must come before bind
- server.bind('tcp://*:9000')
-
- client = ctx.socket(zmq.PULL)
- client.plain_username = b'admin'
- client.plain_password = b'secret'
- client.connect('tcp://127.0.0.1:9000')
-
- server.send(b"Hello")
-
- if client.poll():
- msg = client.recv()
- if msg == b"Hello":
- valid_client_test_pass = True
-
- client.close()
-
-
- # now use invalid credentials - expect no msg received
- client2 = ctx.socket(zmq.PULL)
- client2.plain_username = b'admin'
- client2.plain_password = b'bogus'
- client2.connect('tcp://127.0.0.1:9000')
-
- server.send(b"World")
-
- if client2.poll(50):
- msg = client.recv()
- if msg == "World":
- invalid_client_test_pass = False
- else:
- # no message is expected
- invalid_client_test_pass = True
-
- # stop auth thread
- auth.stop()
-
- if valid_client_test_pass and invalid_client_test_pass:
- logging.info("Woodhouse test OK")
- else:
- logging.error("Woodhouse test FAIL")
-
-
-if __name__ == '__main__':
- if zmq.zmq_version_info() < (4,0):
- raise RuntimeError("Security is not supported in libzmq version < 4.0. libzmq version {0}".format(zmq.zmq_version()))
-
- if '-v' in sys.argv:
- level = logging.DEBUG
- else:
- level = logging.INFO
-
- logging.basicConfig(level=level, format="[%(levelname)s] %(message)s")
-
- run()