From a99401053d9f6ad6e5f48434ce516c89f942a1cd Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Thu, 7 May 2015 10:46:31 +0800 Subject: [PATCH] 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}, []} }. +