A simple way to generate ACL and PASSWORD plugins for usage with the mosquitto broker.
Requires that mosquitto_plugin.h mosquitto.h files are installed on the system, on linux systems this is usually achieved through the mosquitto-dev packages. Not tested on windows.
To pass additional (clang) arguments to the clang invocation from bindgen
, set
MOSQUITTO_PLUGIN_CLANG_EXTRA_ARGS
for e.g a special search path for the
mosquitto headers: "-I ../mosquitto-2.0.4/include".
The optional functions are not implemented here.
- ease of access to write own mosquitto plugins
- auth_opt_<key> value in the mosquitto_conf
- mutable access to the structure between calls
- ACL implementations
- username/password implementatations
There is an example usage in the github repo under "examples/acl" folder.
Simple example that allows only password/username combos where the password is reversed (and no credentials as well, since those do not invoke ACL calls, and thus needs to be configured in a mosquitto configuration)
It also only allows messages on the topic specified in the mosquitto config as authopttopic
See the provided examples/mosquitto-acl.conf for details.
Start build and run:
cargo build --example basic-auth
mosquitto -c examples/basic-auth.conf
Example how to negotiate authentification with a client with v5 AUTH packages.
Start build and run:
cargo build --example extended-auth
mosquitto -c examples/extended-auth.conf