From a99401053d9f6ad6e5f48434ce516c89f942a1cd Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Thu, 7 May 2015 10:46:31 +0800 Subject: [PATCH 1/2] add --- .../src/emqttd_auth_ldap.app.src | 12 ++++++ .../emqttd_auth_ldap/src/emqttd_auth_ldap.erl | 42 +++++++++++++++++++ .../src/emqttd_auth_ldap_app.erl | 20 +++++++++ .../src/emqttd_auth_ldap_sup.erl | 27 ++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.app.src create mode 100644 plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.erl create mode 100644 plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_app.erl create mode 100644 plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_sup.erl diff --git a/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.app.src b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.app.src new file mode 100644 index 000000000..1b53c6a5f --- /dev/null +++ b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.app.src @@ -0,0 +1,12 @@ +{application, emqttd_auth_ldap, + [ + {description, ""}, + {vsn, "1"}, + {registered, []}, + {applications, [ + kernel, + stdlib + ]}, + {mod, { emqttd_auth_ldap_app, []}}, + {env, []} + ]}. diff --git a/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.erl b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.erl new file mode 100644 index 000000000..2ce9b0bc7 --- /dev/null +++ b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap.erl @@ -0,0 +1,42 @@ +%%%----------------------------------------------------------------------------- +%%% Copyright (c) 2012-2015 eMQTT.IO, All Rights Reserved. +%%% +%%% Permission is hereby granted, free of charge, to any person obtaining a copy +%%% of this software and associated documentation files (the "Software"), to deal +%%% in the Software without restriction, including without limitation the rights +%%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +%%% copies of the Software, and to permit persons to whom the Software is +%%% furnished to do so, subject to the following conditions: +%%% +%%% The above copyright notice and this permission notice shall be included in all +%%% copies or substantial portions of the Software. +%%% +%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +%%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +%%% SOFTWARE. +%%%----------------------------------------------------------------------------- +%%% @doc +%%% LDAP authentication module. +%%% +%%% @end +%%%----------------------------------------------------------------------------- +-module(emqttd_auth_ldap). + +-author("Feng Lee "). + +-include_lib("emqttd/include/emqttd.hrl"). + +-behaviour(emqttd_auth_mod). + +-export([init/1, check/3, description/0]). + +init(Opts) -> {ok, Opts}. + +check(_Client, _Password, _Opts) -> ingore. + +description() -> "LDAP authentication module". + diff --git a/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_app.erl b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_app.erl new file mode 100644 index 000000000..20f9a95eb --- /dev/null +++ b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_app.erl @@ -0,0 +1,20 @@ +-module(emqttd_auth_ldap_app). + +-behaviour(application). + +%% Application callbacks +-export([start/2, stop/1]). + +%% =================================================================== +%% Application callbacks +%% =================================================================== + +start(_StartType, _StartArgs) -> + {ok, Sup} = emqttd_auth_ldap_sup:start_link(), + Env = application:get_all_env(), + emqttd_access_control:register_mod(auth, emqttd_auth_ldap, Env), + {ok, Sup}. + +stop(_State) -> + emqttd_access_control:unregister_mod(auth, emqttd_auth_ldap), + ok. diff --git a/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_sup.erl b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_sup.erl new file mode 100644 index 000000000..e3ce043de --- /dev/null +++ b/plugins/emqttd_auth_ldap/src/emqttd_auth_ldap_sup.erl @@ -0,0 +1,27 @@ +-module(emqttd_auth_ldap_sup). + +-behaviour(supervisor). + +%% API +-export([start_link/0]). + +%% Supervisor callbacks +-export([init/1]). + +%% Helper macro for declaring children of supervisor +-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}). + +%% =================================================================== +%% API functions +%% =================================================================== + +start_link() -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +%% =================================================================== +%% Supervisor callbacks +%% =================================================================== + +init([]) -> + {ok, { {one_for_one, 5, 10}, []} }. + From c6e92388798302ae3b44286f444505d1c385aba7 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Fri, 8 May 2015 11:14:18 +0800 Subject: [PATCH 2/2] dashboard --- TODO | 4 ++++ plugins/emqttd_dashboard/src/emqttd_dashboard.erl | 5 +++++ .../emqttd_dashboard/src/emqttd_dashboard_app.erl | 13 ++++++++++++- rel/files/plugins.config | 2 +- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index 6b39dca41..1e1b7f263 100644 --- a/TODO +++ b/TODO @@ -6,6 +6,10 @@ v0.9.0-alpha (2015-05-30) v0.8.0-alpha (2015-05-10) ------------------------- +Presence Management.... + +Force Subscriptions... + Documents... MySQL Auth diff --git a/plugins/emqttd_dashboard/src/emqttd_dashboard.erl b/plugins/emqttd_dashboard/src/emqttd_dashboard.erl index 733d4d683..fae297b16 100644 --- a/plugins/emqttd_dashboard/src/emqttd_dashboard.erl +++ b/plugins/emqttd_dashboard/src/emqttd_dashboard.erl @@ -28,6 +28,11 @@ -author("Feng Lee "). +-export([handle_request/1]). + %%TODO... +handle_request(Req) -> + Req:ok("hello!"). + diff --git a/plugins/emqttd_dashboard/src/emqttd_dashboard_app.erl b/plugins/emqttd_dashboard/src/emqttd_dashboard_app.erl index e1f6c9550..8e0898679 100644 --- a/plugins/emqttd_dashboard/src/emqttd_dashboard_app.erl +++ b/plugins/emqttd_dashboard/src/emqttd_dashboard_app.erl @@ -10,7 +10,18 @@ %% =================================================================== start(_StartType, _StartArgs) -> - emqttd_dashboard_sup:start_link(). + {ok, Sup} = emqttd_dashboard_sup:start_link(), + open_listener(application:get_env(listener)), + {ok, Sup}. stop(_State) -> ok. + +%% open http port +open_listener({_Http, Port, Options}) -> + MFArgs = {emqttd_dashboard, handle_request, []}, + mochiweb:start_http(Port, Options, MFArgs). + +close_listener(Port) -> + mochiweb:stop_http(Port). + diff --git a/rel/files/plugins.config b/rel/files/plugins.config index c8e850e57..57dcb8abf 100644 --- a/rel/files/plugins.config +++ b/rel/files/plugins.config @@ -14,7 +14,7 @@ % % {emqttd_dashboard, [ % {listener, -% {http, 8080, [ +% {http, 18083, [ % {acceptors, 4}, % {max_clients, 512}]}} % ]}