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