We’ve developed an authentication plugin for a mosquitto mqtt broker, and we need to write the same plugin for another broker named emqtt that is written in erlang. When the client connects to the mqtt broker it uses an username, password and client id. The password is a token provided by another service that contains a base64 encoded identity and the signature for that identity. The plugin needs to validate that the identity is valid using the signature, decode the identity and extract some information to match with username and client id, let the client log in and generate a rule for which mqtt topics the client is able to publish and subscribe. The mosquitto plugin was written in C based on the mosquitto plugin architecture and do everything we need, your job is to implement the same plugin in erlang for the Emqtt broker that has its own different plugin architecture (somehow similar to mosquitto).
Posted on August 30, 2016