From b18ed9644483f2397997878c085c23a6bbb71fb7 Mon Sep 17 00:00:00 2001 From: James Pace Date: Wed, 16 Mar 2022 23:42:07 +0000 Subject: [PATCH] Better handle missing usernames. Fix test. --- src/Authorizer.cpp | 2 +- src/jwp-plugin.cpp | 8 +++++++- test/run.sh | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Authorizer.cpp b/src/Authorizer.cpp index f2caa32..1718384 100644 --- a/src/Authorizer.cpp +++ b/src/Authorizer.cpp @@ -46,7 +46,7 @@ void Authorizer::add_unknown(const std::string& username) bool Authorizer::is_unknown(const std::string& username) { - return _unknownList.confirm(username); + return (username.empty() or _unknownList.confirm(username)); } bool Authorizer::add(const std::string& token, const std::string& username) diff --git a/src/jwp-plugin.cpp b/src/jwp-plugin.cpp index fa432f9..90c2e89 100644 --- a/src/jwp-plugin.cpp +++ b/src/jwp-plugin.cpp @@ -102,7 +102,13 @@ int jwp_auth_basic_auth_callback(int event, void *event_data, void *userdata) struct mosquitto_evt_basic_auth *auth_data = static_cast(event_data); - if(!auth_data->username or !auth_data->password) + if(!auth_data->username) + { + // We need a username to do anything. + return MOSQ_ERR_PLUGIN_DEFER; + } + + if(!auth_data->password) { authorizer->add_unknown(std::string(auth_data->username)); return MOSQ_ERR_PLUGIN_DEFER; diff --git a/test/run.sh b/test/run.sh index 41323fa..872a188 100755 --- a/test/run.sh +++ b/test/run.sh @@ -1,2 +1,2 @@ #!/usr/bin/env bash -/usr/local/sbin/mosquitto -v -c $PWD/mosquitto.conf +/usr/sbin/mosquitto -v -c $PWD/mosquitto.conf