From e690436a37b7a474686b13d16b435c349f58915f Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Sat, 19 Oct 2019 15:06:08 -0400 Subject: [PATCH 01/11] handle #55 Better handling if a bot is missing a DID, which could be a corrupt or outdated database. --- bumper/confserver.py | 5 ++++- bumper/db.py | 5 ++++- tests/test_confserver.py | 21 ++++++++++++++++++++- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/bumper/confserver.py b/bumper/confserver.py index be64d59..60bb2a5 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -489,7 +489,10 @@ class ConfServer: bumper.user_add_device(tmpuser["userid"], user_devid) for bot in bots: # Add all bots to the user - bumper.user_add_bot(tmpuser["userid"], bot["did"]) + if "did" in bot: + bumper.user_add_bot(tmpuser["userid"], bot["did"]) + else: + confserverlog.error("No DID for bot: {}".format(bot)) if "checkLogin" in request.path: # If request was to check a token do so checkToken = self.check_token( diff --git a/bumper/db.py b/bumper/db.py index 20181f9..52f6ba1 100644 --- a/bumper/db.py +++ b/bumper/db.py @@ -309,7 +309,10 @@ def bot_toEcoVacsHome_JSON(bot): # EcoVacs Home def bot_full_upsert(vacbot): bots = db_get().table("bots") Bot = Query() - bots.upsert(vacbot, Bot.did == vacbot["did"]) + if "did" in vacbot: + bots.upsert(vacbot, Bot.did == vacbot["did"]) + else: + bumperlog.error("No DID in vacbot: {}".format(vacbot)) def bot_set_nick(did, nick): diff --git a/tests/test_confserver.py b/tests/test_confserver.py index 2d0a70b..36e3fe3 100644 --- a/tests/test_confserver.py +++ b/tests/test_confserver.py @@ -84,7 +84,7 @@ async def test_login(aiohttp_client): assert "username" in jsonresp["data"] remove_existing_db() - bumper.db = "tests/tmp.db" # Set db location for testing + bumper.db = "tests/tmp.db" # Set db location for testing # Test global_e without user resp = await client.get("/v1/private/us/en/dev_1234/global_e/1/0/0/user/login") @@ -118,6 +118,25 @@ async def test_login(aiohttp_client): assert "uid" in jsonresp["data"] assert "username" in jsonresp["data"] + # Add a bot to db that doesn't have a did + newbot = { + "class": "dev_1234", + "company": "com_123", + #"did": self.did, + "name": "sn_1234", + "resource": "res_1234", + } + bumper.bot_full_upsert(newbot) + + resp = await client.get("/v1/private/us/en/dev_1234/ios/1/0/0/user/login") + assert resp.status == 200 + text = await resp.text() + jsonresp = json.loads(text) + assert jsonresp["code"] == bumper.RETURN_API_SUCCESS + assert "accessToken" in jsonresp["data"] + assert "uid" in jsonresp["data"] + assert "username" in jsonresp["data"] + async def test_logout(aiohttp_client): remove_existing_db() From 7aec175588515cb67e8a88837055f7f67bd702ab Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Fri, 22 Nov 2019 14:59:23 -0500 Subject: [PATCH 02/11] Update Dockerfile --- Dockerfile | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 85e9ea5..604ddb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,18 +2,16 @@ FROM python:3.7-alpine as base FROM base as builder -RUN mkdir /install -WORKDIR /install - -COPY requirements.txt /requirements.txt - -RUN pip install --install-option="--prefix=/install" -r /requirements.txt +# add build utils (gcc, others) +RUN apk add build-base FROM base -COPY --from=builder /install /usr/local COPY . /bumper WORKDIR /bumper -ENTRYPOINT ["python3", "-m", "bumper"] \ No newline at end of file +# install required python packages +RUN pip3 install -r requirements.txt + +ENTRYPOINT ["python3", "-m", "bumper"] From d99e1c281c0bd5ac491c5a7556224f091a0da1f9 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Fri, 22 Nov 2019 15:04:50 -0500 Subject: [PATCH 03/11] Update appveyor.yml --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 56cc65c..9ea12c9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,7 +9,7 @@ environment: install: - pip install pipenv - - pipenv --python 3 + - pipenv --python 3.7 - pipenv install --dev build: off From 91c70ccb3f9baff22abee8ceb9f32d59a797be53 Mon Sep 17 00:00:00 2001 From: Andreas Harter Date: Tue, 17 Dec 2019 17:32:56 +0100 Subject: [PATCH 04/11] Add certificate instructions for Android 7 and up --- docs/Use_With_App.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/Use_With_App.md b/docs/Use_With_App.md index a83a287..85a3c94 100644 --- a/docs/Use_With_App.md +++ b/docs/Use_With_App.md @@ -52,6 +52,30 @@ Bumper *can* be used with the official "Ecovacs" or "Ecovacs Home" app, but with ### Importing the CA Cert on Android +#### Android 7 and up (requires root) + +Android 7 introduced changes to the certificate mechanism. See [blog entry](https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html). + +> Apps that target API Level 24 and above no longer trust user or admin-added CAs for secure connections, by default. + +To circumvent this problem, the certificate must be added as a system storage. + +```bash +openssl x509 -in ca.crt -noout -text >> ca.crt + +# restart adb as root +adb root +# remount /system rw +adb remount +# add certificate +adb push ca.crt "/system/etc/security/cacerts/$(openssl x509 -inform PEM -subject_hash_old -in ca.crt | head -1).0" +adb reboot +``` + +After reboot, verify that the certificate was added by checking `Settings > Security > Encryption & credentials > Trusted credentials > System` + +#### Android 6 and below + 1. Open the e-mail on your Android device **Quick Method** From cc16a5ceb58e3bb9882cc902ea75ffda17e9217e Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Fri, 27 Dec 2019 11:12:13 -0500 Subject: [PATCH 05/11] create passwd file if it doesnt exist create passwd file if it doesnt exist --- bumper/__init__.py | 5 +++++ bumper/mqttserver.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bumper/__init__.py b/bumper/__init__.py index 4835994..f791f29 100644 --- a/bumper/__init__.py +++ b/bumper/__init__.py @@ -321,6 +321,11 @@ def main(argv=None): first_run() return + if not ( + os.path.exists(os.path.join(data_dir, "passwd")) + ): + with open(os.path.join(data_dir, "passwd"), 'w'): pass + parser = argparse.ArgumentParser() parser.add_argument( "--listen", type=str, default=None, help="start serving on address" diff --git a/bumper/mqttserver.py b/bumper/mqttserver.py index c7ff20e..bae05fe 100644 --- a/bumper/mqttserver.py +++ b/bumper/mqttserver.py @@ -255,7 +255,7 @@ class MQTTServer: "auth": { "allow-anonymous": False, "password-file": os.path.join( - os.path.dirname(os.path.realpath(__file__)), "passwd" + os.path.join(bumper.data_dir, "passwd") ), "plugins": ["bumper"], # No plugins == no auth }, From 18f3a807f19755202ed3a064ac36731844ffe5aa Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Fri, 27 Dec 2019 11:51:31 -0500 Subject: [PATCH 06/11] add image for bots in ecovacs home add endpoint for /api/pim/file/get so an image is displayed for bots in the ecovacs home app --- .gitignore | 1 + bumper/confserver.py | 12 ++++++++++++ data/web/robotvac_image.jpg | Bin 0 -> 146879 bytes tests/test_confserver.py | 7 +++++++ 4 files changed, 20 insertions(+) create mode 100644 data/web/robotvac_image.jpg diff --git a/.gitignore b/.gitignore index b3c8448..53b39f8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ tests/* # Ignore logs/data/certs logs/* data/* +!data/web* certs/* # Except README in logs/data/certs diff --git a/bumper/confserver.py b/bumper/confserver.py index 60bb2a5..65d0483 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -6,6 +6,7 @@ import ssl import string import random import bumper +import os from bumper.models import * from datetime import datetime, timedelta import asyncio @@ -142,6 +143,7 @@ class ConfServer: "/api/dim/devmanager.do", self.handle_dim_devmanager ), # EcoVacs Home web.post("/lookup.do", self.handle_lookup), + web.get("/api/pim/file/get/{id}", self.handle_pimFile) ] ) # Direct register from app: @@ -1275,6 +1277,16 @@ class ConfServer: except Exception as e: confserverlog.exception("{}".format(e)) + + async def handle_pimFile(self, request): + try: + fileID = request.match_info.get("id", "") + + return web.FileResponse(os.path.join(bumper.data_dir,"web","robotvac_image.jpg")) + + except Exception as e: + confserverlog.exception("{}".format(e)) + async def disconnect(self): try: confserverlog.info("shutting down") diff --git a/data/web/robotvac_image.jpg b/data/web/robotvac_image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..124a15e5af7dba53e0e693d6d61c33f0709575dd GIT binary patch literal 146879 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 F|Je$A@D%_6 literal 0 HcmV?d00001 diff --git a/tests/test_confserver.py b/tests/test_confserver.py index 36e3fe3..45fe922 100644 --- a/tests/test_confserver.py +++ b/tests/test_confserver.py @@ -497,6 +497,11 @@ async def test_getProductIotMap(aiohttp_client): assert jsonresp["code"] == bumper.RETURN_API_SUCCESS + # Test getPimFile + resp = await client.get("/api/pim/file/get/123") + assert resp.status == 200 + + async def test_getUsersAPI(aiohttp_client): remove_existing_db() bumper.db = "tests/tmp.db" # Set db location for testing @@ -906,3 +911,5 @@ async def test_dim_devmanager(aiohttp_client): test_resp = json.loads(text) assert test_resp["ret"] == "fail" + + From 707a1149fd55872b417884b363ee499e0d4f38be Mon Sep 17 00:00:00 2001 From: Andreas Harter Date: Sat, 28 Dec 2019 20:05:00 +0100 Subject: [PATCH 07/11] Ensure all bots are returned during getProductIotMap During the use of the Ecovacs Home App, some bots do disappear from the app. This is due to the getProductIotMap endpoint handler using its own list of bots. This list contains only a fraction of the EcoVacsHomeProducts list maintained in models.py. Replacing the handler list with the global one follows DRY and simplifies maintenance in the future. --- bumper/confserver.py | 69 +------------------------------------------- 1 file changed, 1 insertion(+), 68 deletions(-) diff --git a/bumper/confserver.py b/bumper/confserver.py index 65d0483..9646ab6 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -855,74 +855,7 @@ class ConfServer: try: body = { "code": bumper.RETURN_API_SUCCESS, - "data": [ - { - "classid": "dl8fht", - "product": { - "_id": "5acb0fa87c295c0001876ecf", - "name": "DEEBOT 600 Series", - "icon": "5acc32067c295c0001876eea", - "UILogicId": "dl8fht", - "ota": False, - "iconUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5acc32067c295c0001876eea", - }, - }, - { - "classid": "02uwxm", - "product": { - "_id": "5ae1481e7ccd1a0001e1f69e", - "name": "DEEBOT OZMO Slim10 Series", - "icon": "5b1dddc48bc45700014035a1", - "UILogicId": "02uwxm", - "ota": False, - "iconUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b1dddc48bc45700014035a1", - }, - }, - { - "classid": "y79a7u", - "product": { - "_id": "5b04c0227ccd1a0001e1f6a8", - "name": "DEEBOT OZMO 900", - "icon": "5b04c0217ccd1a0001e1f6a7", - "UILogicId": "y79a7u", - "ota": True, - "iconUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b04c0217ccd1a0001e1f6a7", - }, - }, - { - "classid": "jr3pqa", - "product": { - "_id": "5b43077b8bc457000140363e", - "name": "DEEBOT 711", - "icon": "5b5ac4cc8d5a56000111e769", - "UILogicId": "jr3pqa", - "ota": True, - "iconUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ac4cc8d5a56000111e769", - }, - }, - { - "classid": "uv242z", - "product": { - "_id": "5b5149b4ac0b87000148c128", - "name": "DEEBOT 710", - "icon": "5b5ac4e45f21100001882bb9", - "UILogicId": "uv242z", - "ota": True, - "iconUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5b5ac4e45f21100001882bb9", - }, - }, - { - "classid": "ls1ok3", - "product": { - "_id": "5b6561060506b100015c8868", - "name": "DEEBOT 900 Series", - "icon": "5ba4a2cb6c2f120001c32839", - "UILogicId": "ls1ok3", - "ota": True, - "iconUrl": "https://portal-ww.ecouser.net/api/pim/file/get/5ba4a2cb6c2f120001c32839", - }, - }, - ], + "data": EcoVacsHomeProducts, } return web.json_response(body) From 212450d37da022242165e89848c27ecee9789ce8 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Mon, 30 Dec 2019 10:36:23 -0500 Subject: [PATCH 08/11] Add MQTT File Auth - Extend bumper MQTT plugin to Read and handle users set in file auth properly. - Update confserver status to display file users/usernames --- bumper/confserver.py | 10 +++-- bumper/mqttserver.py | 89 ++++++++++++++++++++++++++++++-------------- 2 files changed, 68 insertions(+), 31 deletions(-) diff --git a/bumper/confserver.py b/bumper/confserver.py index 9646ab6..a292f65 100644 --- a/bumper/confserver.py +++ b/bumper/confserver.py @@ -203,10 +203,12 @@ class ConfServer: mq_sessions = [] for sess in mqttserver._sessions: tmpsess = [] - tmpsess.append({"client_id": mqttserver._sessions[sess][0].client_id}) - tmpsess.append( - {"state": mqttserver._sessions[sess][0].transitions.state} - ) + tmpsess.append({ + "username": mqttserver._sessions[sess][0].username, + "client_id": mqttserver._sessions[sess][0].client_id, + "state": mqttserver._sessions[sess][0].transitions.state, + }) + mq_sessions.append(tmpsess) all = { "bots": bots, diff --git a/bumper/mqttserver.py b/bumper/mqttserver.py index bae05fe..f28a3f5 100644 --- a/bumper/mqttserver.py +++ b/bumper/mqttserver.py @@ -13,6 +13,7 @@ import bumper import json from datetime import datetime, timedelta import bumper +from passlib.apps import custom_app_context as pwd_context helperbotlog = logging.getLogger("helperbot") boterrorlog = logging.getLogger("boterror") @@ -253,11 +254,11 @@ class MQTTServer: }, "sys_interval": 10, "auth": { - "allow-anonymous": False, + "allow-anonymous": False, # Set to True to allow anonymous authentication "password-file": os.path.join( os.path.join(bumper.data_dir, "passwd") - ), - "plugins": ["bumper"], # No plugins == no auth + ), # For file auth, set user:hash in passwd file see (https://hbmqtt.readthedocs.io/en/latest/references/hbmqtt.html#configuration-example) + "plugins": ["bumper"], # Bumper plugin provides auth and handling of bots/clients connecting }, "topic-check": {"enabled": False}, } @@ -271,6 +272,8 @@ class BumperMQTTServer_Plugin: self.context = context try: self.auth_config = self.context.config["auth"] + self._users = dict() + self._read_password_file() except KeyError: self.context.logger.warning( @@ -280,6 +283,7 @@ class BumperMQTTServer_Plugin: mqttserverlog.exception("{}".format(e)) async def authenticate(self, *args, **kwargs): + authenticated = False if not self.auth_config: # auth config section not found self.context.logger.warning( @@ -287,19 +291,14 @@ class BumperMQTTServer_Plugin: ) return False - allow_anonymous = self.auth_config.get( - "allow-anonymous", True - ) # allow anonymous by default - if allow_anonymous: - authenticated = True - self.context.logger.debug("Authentication success: config allows anonymous") - else: - try: - session = kwargs.get("session", None) - username = session.username - password = session.password - client_id = session.client_id + + try: + session = kwargs.get("session", None) + username = session.username + password = session.password + client_id = session.client_id + if "@" in client_id: didsplit = str(client_id).split("@") if not ( # if ecouser or bumper aren't in details it is a bot "ecouser" in didsplit[1] or "bumper" in didsplit[1] @@ -312,10 +311,7 @@ class BumperMQTTServer_Plugin: tmpbotdetail[1], "eco-ng", ) - - mqttserverlog.info( - "bot authenticated SN: {} DID: {}".format(username, didsplit[0]) - ) + mqttserverlog.info(f"Bumper Authentication Success - Bot - SN: {username} - DID: {didsplit[0]} - Class: {tmpbotdetail[0]}") authenticated = True else: @@ -325,6 +321,7 @@ class BumperMQTTServer_Plugin: resource = tmpclientdetail[1] if userid == "helper1": + mqttserverlog.info(f"Bumper Authentication Success - Helperbot: {client_id}") authenticated = True else: auth = False @@ -335,20 +332,60 @@ class BumperMQTTServer_Plugin: if auth: bumper.client_add(userid, realm, resource) - mqttserverlog.info("client authenticated {}".format(userid)) + mqttserverlog.info(f"Bumper Authentication Success - Client - Username: {username} - ClientID: {client_id}") authenticated = True else: authenticated = False - except Exception as e: - mqttserverlog.exception( - "Session: {} - {}".format((kwargs.get("session", None)), e) - ) - authenticated = False + # Check for File Auth + if username and not authenticated: # If there is a username and it isn't already authenticated + hash = self._users.get(username, None) + if hash: # If there is a matching entry in passwd, check hash + authenticated = pwd_context.verify(password, hash) + if authenticated: + mqttserverlog.info(f"File Authentication Success - Username: {username} - ClientID: {client_id}") + else: + mqttserverlog.info(f"File Authentication Failed - Username: {username} - ClientID: {client_id}") + else: + mqttserverlog.info(f"File Authentication Failed - No Entry for Username: {username} - ClientID: {client_id}") + + except Exception as e: + mqttserverlog.exception( + "Session: {} - {}".format((kwargs.get("session", None)), e) + ) + authenticated = False + + # Check for allow anonymous + allow_anonymous = self.auth_config.get( + "allow-anonymous", True + ) + if allow_anonymous and not authenticated: # If anonymous auth is allowed and it isn't already authenticated + authenticated = True + self.context.logger.debug(f"Anonymous Authentication Success: config allows anonymous - Username: {username}") + mqttserverlog.info(f"Anonymous Authentication Success: config allows anonymous - Username: {username}") return authenticated + def _read_password_file(self): + password_file = self.auth_config.get('password-file', None) + if password_file: + try: + with open(password_file) as f: + self.context.logger.debug(f"Reading user database from {password_file}") + for l in f: + line = l.strip() + if not line.startswith('#'): # Allow comments in files + (username, pwd_hash) = line.split(sep=":", maxsplit=3) + if username: + self._users[username] = pwd_hash + self.context.logger.debug(f"user: {username} - hash: {pwd_hash}") + self.context.logger.debug(f"{(len(self._users))} user(s) read from file {password_file}") + except FileNotFoundError: + self.context.logger.warning(f"Password file {password_file} not found") + else: + self.context.logger.debug("Configuration parameter 'password_file' not found") + async def on_broker_client_connected(self, client_id): didsplit = str(client_id).split("@") @@ -358,7 +395,6 @@ class BumperMQTTServer_Plugin: bumper.bot_set_mqtt(bot["did"], True) return - # clientuserid = didsplit[0] clientresource = didsplit[1].split("/")[1] client = bumper.client_get(clientresource) if client: @@ -374,7 +410,6 @@ class BumperMQTTServer_Plugin: bumper.bot_set_mqtt(bot["did"], False) return - # clientuserid = didsplit[0] clientresource = didsplit[1].split("/")[1] client = bumper.client_get(clientresource) if client: From 2fbfd4188a8227c9f8bc228d76e60d56f0bbe280 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Mon, 30 Dec 2019 11:36:38 -0500 Subject: [PATCH 09/11] add tests for file auth add tests for file auth --- tests/test_mqttserver.py | 184 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) diff --git a/tests/test_mqttserver.py b/tests/test_mqttserver.py index b4f4aa0..6cb9730 100644 --- a/tests/test_mqttserver.py +++ b/tests/test_mqttserver.py @@ -379,6 +379,26 @@ async def test_mqttserver(): mqtt_address = ("127.0.0.1", 8883) mqtt_server = bumper.MQTTServer(mqtt_address) + + mqtt_server.default_config = { + "listeners": { + "default": {"type": "tcp"}, + "tls1": { + "bind": "{}:{}".format(mqtt_address[0], mqtt_address[1]), + "ssl": "on", + "certfile": bumper.server_cert, + "keyfile": bumper.server_key, + }, + }, + "sys_interval": 10, + "auth": { + "allow-anonymous": True, # Set to True to allow anonymous authentication + "password-file": "tests/passwd", # For file auth, set user:hash in passwd file see (https://hbmqtt.readthedocs.io/en/latest/references/hbmqtt.html#configuration-example) + "plugins": ["bumper"], # Bumper plugin provides auth and handling of bots/clients connecting + }, + "topic-check": {"enabled": False}, + } + await mqtt_server.broker_coro() # Test helperbot connect @@ -420,6 +440,170 @@ async def test_mqttserver(): ) # Check fake_bot is connected await fake_bot.Client.disconnect() + # Test file auth client connect + test_client = bumper.MQTTHelperBot(mqtt_address) + test_client.client_id = "test-file-auth" + # await test_client.start_helper_bot() + test_client.Client = hbmqtt.client.MQTTClient( + client_id=test_client.client_id, config={"check_hostname": False, "auto_reconnect": False, "reconnect_retries": 1} + ) + + # good user/pass + await test_client.Client.connect( + f"mqtts://test-client:abc123!@{test_client.address[0]}:{test_client.address[1]}/", + cafile=bumper.ca_cert, cleansession=True + ) + + assert ( + test_client.Client._connected_state._value == True + ) # Check client is connected + await test_client.Client.disconnect() + assert ( + test_client.Client._connected_state._value == False + ) # Check client is disconnected + + # bad password + try: + await test_client.Client.connect( + f"mqtts://test-client:notvalid!@{test_client.address[0]}:{test_client.address[1]}/", + cafile=bumper.ca_cert, cleansession=True + ) + + assert ( + test_client.Client._connected_state._value == False + ) # Check client is connected + + except Exception as ae: + pass + + # no username in file + try: + await test_client.Client.connect( + f"mqtts://test-client-noexist:notvalid!@{test_client.address[0]}:{test_client.address[1]}/", + cafile=bumper.ca_cert, cleansession=True + ) + + assert ( + test_client.Client._connected_state._value == False + ) # Check client is connected + + except Exception as ae: + pass + + + await asyncio.sleep(0.1) await mqtt_server.broker.shutdown() + await asyncio.sleep(0.1) + +async def test_passwordfile_badhash_mqttserver(): + mqtt_address = ("127.0.0.1", 8883) + + mqtt_server = bumper.MQTTServer(mqtt_address) + + mqtt_server.default_config = { + "listeners": { + "default": {"type": "tcp"}, + "tls1": { + "bind": "{}:{}".format(mqtt_address[0], mqtt_address[1]), + "ssl": "on", + "certfile": bumper.server_cert, + "keyfile": bumper.server_key, + }, + }, + "sys_interval": 10, + "auth": { + "allow-anonymous": True, # Set to True to allow anonymous authentication + "password-file": "tests/passwd_bad", # For file auth, set user:hash in passwd file see (https://hbmqtt.readthedocs.io/en/latest/references/hbmqtt.html#configuration-example) + "plugins": ["bumper"], # Bumper plugin provides auth and handling of bots/clients connecting + }, + "topic-check": {"enabled": False}, + } + + await mqtt_server.broker_coro() + await asyncio.sleep(0.1) + + # bad password + try: + test_client = bumper.MQTTHelperBot(mqtt_address) + + await test_client.Client.connect( + f"mqtts://test-client:notvalid!@{test_client.address[0]}:{test_client.address[1]}/", + cafile=bumper.ca_cert, cleansession=True + ) + + assert ( + test_client.Client._connected_state._value == False + ) # Check client is connected + + + except Exception as ae: + pass + + await mqtt_server.broker.shutdown() + await asyncio.sleep(0.1) + +async def test_nofileauth_mqttserver(): + try: + + mqtt_address = ("127.0.0.1", 8883) + + mqtt_server = bumper.MQTTServer(mqtt_address) + + mqtt_server.default_config = { + "listeners": { + "default": {"type": "tcp"}, + "tls1": { + "bind": "{}:{}".format(mqtt_address[0], mqtt_address[1]), + "ssl": "on", + "certfile": bumper.server_cert, + "keyfile": bumper.server_key, + }, + }, + "sys_interval": 10, + "auth": { + "allow-anonymous": True, # Set to True to allow anonymous authentication + "password-file": "tests/passwd-notfound", # For file auth, set user:hash in passwd file see (https://hbmqtt.readthedocs.io/en/latest/references/hbmqtt.html#configuration-example) + "plugins": ["bumper"], # Bumper plugin provides auth and handling of bots/clients connecting + }, + "topic-check": {"enabled": False}, + } + + await mqtt_server.broker_coro() + + except: + pass + + +async def test_passwordfile_opt_missing_mqttserver(): + try: + + mqtt_address = ("127.0.0.1", 8883) + + mqtt_server = bumper.MQTTServer(mqtt_address) + + mqtt_server.default_config = { + "listeners": { + "default": {"type": "tcp"}, + "tls1": { + "bind": "{}:{}".format(mqtt_address[0], mqtt_address[1]), + "ssl": "on", + "certfile": bumper.server_cert, + "keyfile": bumper.server_key, + }, + }, + "sys_interval": 10, + "auth": { + "allow-anonymous": True, # Set to True to allow anonymous authentication + + "plugins": ["bumper"], # Bumper plugin provides auth and handling of bots/clients connecting + }, + "topic-check": {"enabled": False}, + } + + await mqtt_server.broker_coro() + await mqtt_server.broker.shutdown() + + except: + pass From d504a248fb1713821fe8a2eaca6dab34e9f2d448 Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Mon, 30 Dec 2019 11:54:03 -0500 Subject: [PATCH 10/11] Update gitignore to add passwd in tests Update gitignore to add passwd in tests --- .gitignore | 2 ++ tests/passwd | 1 + tests/passwd_bad | 1 + 3 files changed, 4 insertions(+) create mode 100644 tests/passwd create mode 100644 tests/passwd_bad diff --git a/.gitignore b/.gitignore index 53b39f8..105823d 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,8 @@ tests/* !tests/test* !tests/test_certs !tests/pytest.ini +!tests/passwd +!tests/passwd_bad # Ignore logs/data/certs logs/* diff --git a/tests/passwd b/tests/passwd new file mode 100644 index 0000000..6975944 --- /dev/null +++ b/tests/passwd @@ -0,0 +1 @@ +test-client:$6$e9026a738b07b5a1$WaoYMI61aIPhhjfe3FG3uzV1oqyRdLi/TvLbBbvvzFyJ7T6PrileHGkzKkJUMLGQm/dhcq0fUT8mcu2kVcjbX/ \ No newline at end of file diff --git a/tests/passwd_bad b/tests/passwd_bad new file mode 100644 index 0000000..b739f39 --- /dev/null +++ b/tests/passwd_bad @@ -0,0 +1 @@ +test-client:badhash \ No newline at end of file From 7ed6f95ee0084c01dcb4a5c5b209103b8d51e72f Mon Sep 17 00:00:00 2001 From: Brian Martin Date: Mon, 30 Dec 2019 11:58:13 -0500 Subject: [PATCH 11/11] Update gitignore Allow .dockerignore and .travis.yml --- .dockerignore | 22 ++++++++++++++++++++++ .gitignore | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f4a3930 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,22 @@ +# Logs +logs + +# Tests +tests + +# Examples +examples + +# Docs +docs + +# Certs +certs + +.coverage + +# Markdown +*.md + +# Other +*.yml \ No newline at end of file diff --git a/.gitignore b/.gitignore index 105823d..9644ac8 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ __pycache__ # Except . !.github/ !.gitignore +!.dockerignore +!.travis.yml # Ignore items in test (report, cache, etc), except files starting with test tests/*