mosquitto auth plugin install
Mosquitto и mosquitto-auth-plug, как установить и сделать авторизацию через mysql и другие бд.
На гитхабе есть замечательный плагин github.com/jpmens/mosquitto-auth-plug и там даже рассказывается как его установить, но увы, если делать все это с новой версией mosquitto у вас ничего не выйдет.
Оставлю для истории, как победить и скомпилировать плагин.
Первое с чем вы столкнетесь это с ошибками при компиляции, ошибками вида conflicting types for ‘mosquitto_auth_acl_check’ и другими, все это обсуждается тут github.com/mbachry/mosquitto_pyauth/issues/20 и если победи эту ошибку то столкнетесь с другой error: unknown type name 'my_bool' которая обсуждается тут github.com/gearman/gearmand/issues/165
Если все почитать и собрать вместе то каменный цветок соберется, ну а чтобы не мучиться надо сделать вот так:
Оригинал статьи находится в этом блоге www.yasith.me/2016/04/securing-mqtt-connection-using.html
Я его переведу и внесу свой вклад чтобы это все собралось
1 2 3 4 5 |
cd ~ mkdir mqtt cd mqtt git clone https://github.com/eclipse/mosquitto.git git clone https://github.com/jpmens/mosquitto-auth-plug.git |
1 2 3 4 5 6 7 |
cd mosquitto sudo apt-get install build-essential sudo apt-get install libc-ares-dev sudo apt-get install uuid-dev sudo apt-get install libssl-dev make binary make install |
1 |
cd ../mosquitto-auth-plug/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Select your backends from this list BACKEND_CDB ?= no BACKEND_MYSQL ?= yes BACKEND_SQLITE ?= no BACKEND_REDIS ?= no BACKEND_POSTGRES ?= no BACKEND_LDAP ?= no BACKEND_HTTP ?= no BACKEND_MONGO ?= no # Specify the path to the Mosquitto sources here MOSQUITTO_SRC = /home/USER/mqtt/mosquitto # Specify the path the OpenSSL here OPENSSLDIR = /usr/bin |
1 2 3 |
sudo apt-get install openssl sudo apt-get install libssl-dev sudo apt-get install libcurl4-openssl-dev |
- auth-plug.c
- be-mysql.c
Первые правки берем по этой ссылке:
github.com/amimoto/mosquitto_pyauth/commit/7802491379e3f4fdca01b5b07c11d72dcf4f75f6
Правки для второго файла берем тут: github.com/gearman/gearmand/issues/165#issuecomment-419531249 (их вносим сразу после всех инклудов вначале файла)
1 |
sudo make |
1 2 |
cp auth-plug.so ../mosquitto cd ../mosquitto |
Здравствуйте! на последнем этапе получаю ошибку:
fatal error: mosquitto.h: No such file or directory
34 | #include