137 lines
4.2 KiB
Erlang
137 lines
4.2 KiB
Erlang
%%-*- mode: erlang -*-
|
|
%% emqx_auth_http config mapping
|
|
{mapping, "auth.http.auth_req.url", "emqx_auth_http.auth_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.auth_req.method", "emqx_auth_http.auth_req", [
|
|
{default, post},
|
|
{datatype, {enum, [post, get]}}
|
|
]}.
|
|
|
|
{mapping, "auth.http.auth_req.headers.$field", "emqx_auth_http.auth_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.auth_req.params", "emqx_auth_http.auth_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{translation, "emqx_auth_http.auth_req", fun(Conf) ->
|
|
case cuttlefish:conf_get("auth.http.auth_req.url", Conf, undefined) of
|
|
undefined -> cuttlefish:unset();
|
|
Url ->
|
|
Headers = cuttlefish_variable:filter_by_prefix("auth.http.auth_req.headers", Conf),
|
|
Params = cuttlefish:conf_get("auth.http.auth_req.params", Conf),
|
|
[{url, Url},
|
|
{method, cuttlefish:conf_get("auth.http.auth_req.method", Conf)},
|
|
{headers, [{K, V} || {[_, _, _, _, K], V} <- Headers]},
|
|
{params, [list_to_tuple(string:tokens(S, "=")) || S <- string:tokens(Params, ",")]}]
|
|
end
|
|
end}.
|
|
|
|
{mapping, "auth.http.super_req.url", "emqx_auth_http.super_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.super_req.method", "emqx_auth_http.super_req", [
|
|
{default, post},
|
|
{datatype, {enum, [post, get]}}
|
|
]}.
|
|
|
|
{mapping, "auth.http.super_req.headers.$field", "emqx_auth_http.super_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.super_req.params", "emqx_auth_http.super_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{translation, "emqx_auth_http.super_req", fun(Conf) ->
|
|
case cuttlefish:conf_get("auth.http.super_req.url", Conf, undefined) of
|
|
undefined -> cuttlefish:unset();
|
|
Url ->
|
|
Headers = cuttlefish_variable:filter_by_prefix("auth.http.super_req.headers", Conf),
|
|
Params = cuttlefish:conf_get("auth.http.super_req.params", Conf),
|
|
[{url, Url},
|
|
{method, cuttlefish:conf_get("auth.http.super_req.method", Conf)},
|
|
{headers, [{K, V} || {[_, _, _, _, K], V} <- Headers]},
|
|
{params, [list_to_tuple(string:tokens(S, "=")) || S <- string:tokens(Params, ",")]}]
|
|
end
|
|
end}.
|
|
|
|
%% @doc URL for ACL checks. Example: http://127.0.0.1:80/mqtt/acl
|
|
%% ACL checks are disabled for this plugin if this config is
|
|
%% commented out from the config file, or when the overriding
|
|
%% environment variable is set to empty string.
|
|
{mapping, "auth.http.acl_req.url", "emqx_auth_http.acl_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.acl_req.method", "emqx_auth_http.acl_req", [
|
|
{default, post},
|
|
{datatype, {enum, [post, get]}}
|
|
]}.
|
|
|
|
{mapping, "auth.http.acl_req.headers.$field", "emqx_auth_http.acl_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.acl_req.params", "emqx_auth_http.acl_req", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{translation, "emqx_auth_http.acl_req", fun(Conf) ->
|
|
case cuttlefish:conf_get("auth.http.acl_req.url", Conf, undefined) of
|
|
undefined -> cuttlefish:unset();
|
|
Url ->
|
|
Headers = cuttlefish_variable:filter_by_prefix("auth.http.acl_req.headers", Conf),
|
|
Params = cuttlefish:conf_get("auth.http.acl_req.params", Conf),
|
|
[{url, Url},
|
|
{method, cuttlefish:conf_get("auth.http.acl_req.method", Conf)},
|
|
{headers, [{K, V} || {[_, _, _, _, K], V} <- Headers]},
|
|
{params, [list_to_tuple(string:tokens(S, "=")) || S <- string:tokens(Params, ",")]}]
|
|
end
|
|
end}.
|
|
|
|
{mapping, "auth.http.timeout", "emqx_auth_http.timeout", [
|
|
{default, "5s"},
|
|
{datatype, [integer, {duration, ms}]}
|
|
]}.
|
|
|
|
{mapping, "auth.http.connect_timeout", "emqx_auth_http.connect_timeout", [
|
|
{default, "5s"},
|
|
{datatype, [integer, {duration, ms}]}
|
|
]}.
|
|
|
|
{mapping, "auth.http.pool_size", "emqx_auth_http.pool_size", [
|
|
{default, 8},
|
|
{datatype, integer}
|
|
]}.
|
|
|
|
{mapping, "auth.http.enable_pipelining", "emqx_auth_http.enable_pipelining", [
|
|
{default, true},
|
|
{datatype, {enum, [true, false]}}
|
|
]}.
|
|
|
|
{mapping, "auth.http.ssl.cacertfile", "emqx_auth_http.cacertfile", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.ssl.certfile", "emqx_auth_http.certfile", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.ssl.keyfile", "emqx_auth_http.keyfile", [
|
|
{datatype, string}
|
|
]}.
|
|
|
|
{mapping, "auth.http.ssl.verify", "emqx_auth_http.verify", [
|
|
{default, false},
|
|
{datatype, {enum, [true, false]}}
|
|
]}.
|
|
|
|
{mapping, "auth.http.ssl.server_name_indication", "emqx_auth_http.server_name_indication", [
|
|
{datatype, string}
|
|
]}.
|