mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-22 16:20:52 +01:00
Add oauth_cache_rest_failure_life_time option
This allows to use shorted life time for failures in rest oauth backend than specified in oauth_cache_life_time.
This commit is contained in:
parent
3516d2053c
commit
faaee94060
@ -19,7 +19,7 @@
|
|||||||
%%%----------------------------------------------------------------------
|
%%%----------------------------------------------------------------------
|
||||||
|
|
||||||
{deps, [{base64url, ".*", {git, "https://github.com/dvv/base64url", {tag, "1.0.1"}}},
|
{deps, [{base64url, ".*", {git, "https://github.com/dvv/base64url", {tag, "1.0.1"}}},
|
||||||
{cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.26"}}},
|
{cache_tab, ".*", {git, "https://github.com/processone/cache_tab", "4eadf230e2803e2ff1ef656641c6574001523f77"}},
|
||||||
{eimp, ".*", {git, "https://github.com/processone/eimp", {tag, "1.0.18"}}},
|
{eimp, ".*", {git, "https://github.com/processone/eimp", {tag, "1.0.18"}}},
|
||||||
{if_var_true, tools,
|
{if_var_true, tools,
|
||||||
{ejabberd_po, ".*", {git, "https://github.com/processone/ejabberd-po", {branch, "main"}}}},
|
{ejabberd_po, ".*", {git, "https://github.com/processone/ejabberd-po", {branch, "main"}}}},
|
||||||
|
@ -81,7 +81,10 @@ lookup(Token) ->
|
|||||||
error;
|
error;
|
||||||
Other ->
|
Other ->
|
||||||
?ERROR_MSG("Unexpected response for oauth lookup: ~p", [Other]),
|
?ERROR_MSG("Unexpected response for oauth lookup: ~p", [Other]),
|
||||||
error
|
case ejabberd_option:oauth_cache_rest_failure_life_time() of
|
||||||
|
infinity -> error;
|
||||||
|
Time -> {cache_with_timeout, error, Time}
|
||||||
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
clean(_TS) ->
|
clean(_TS) ->
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
-export([oauth_access/0, oauth_access/1]).
|
-export([oauth_access/0, oauth_access/1]).
|
||||||
-export([oauth_cache_life_time/0]).
|
-export([oauth_cache_life_time/0]).
|
||||||
-export([oauth_cache_missed/0]).
|
-export([oauth_cache_missed/0]).
|
||||||
|
-export([oauth_cache_rest_failure_life_time/0]).
|
||||||
-export([oauth_cache_size/0]).
|
-export([oauth_cache_size/0]).
|
||||||
-export([oauth_client_id_check/0, oauth_client_id_check/1]).
|
-export([oauth_client_id_check/0, oauth_client_id_check/1]).
|
||||||
-export([oauth_db_type/0]).
|
-export([oauth_db_type/0]).
|
||||||
@ -635,6 +636,10 @@ oauth_cache_life_time() ->
|
|||||||
oauth_cache_missed() ->
|
oauth_cache_missed() ->
|
||||||
ejabberd_config:get_option({oauth_cache_missed, global}).
|
ejabberd_config:get_option({oauth_cache_missed, global}).
|
||||||
|
|
||||||
|
-spec oauth_cache_rest_failure_life_time() -> 'infinity' | pos_integer().
|
||||||
|
oauth_cache_rest_failure_life_time() ->
|
||||||
|
ejabberd_config:get_option({oauth_cache_rest_failure_life_time, global}).
|
||||||
|
|
||||||
-spec oauth_cache_size() -> 'infinity' | pos_integer().
|
-spec oauth_cache_size() -> 'infinity' | pos_integer().
|
||||||
oauth_cache_size() ->
|
oauth_cache_size() ->
|
||||||
ejabberd_config:get_option({oauth_cache_size, global}).
|
ejabberd_config:get_option({oauth_cache_size, global}).
|
||||||
|
@ -247,6 +247,8 @@ opt_type(oauth_cache_life_time) ->
|
|||||||
econf:timeout(second, infinity);
|
econf:timeout(second, infinity);
|
||||||
opt_type(oauth_cache_missed) ->
|
opt_type(oauth_cache_missed) ->
|
||||||
econf:bool();
|
econf:bool();
|
||||||
|
opt_type(oauth_cache_rest_failure_life_time) ->
|
||||||
|
econf:timeout(second, infinity);
|
||||||
opt_type(oauth_cache_size) ->
|
opt_type(oauth_cache_size) ->
|
||||||
econf:pos_int(infinity);
|
econf:pos_int(infinity);
|
||||||
opt_type(oauth_db_type) ->
|
opt_type(oauth_db_type) ->
|
||||||
@ -586,6 +588,7 @@ options() ->
|
|||||||
fun(Host) -> ejabberd_config:get_option({cache_missed, Host}) end},
|
fun(Host) -> ejabberd_config:get_option({cache_missed, Host}) end},
|
||||||
{oauth_cache_size,
|
{oauth_cache_size,
|
||||||
fun(Host) -> ejabberd_config:get_option({cache_size, Host}) end},
|
fun(Host) -> ejabberd_config:get_option({cache_size, Host}) end},
|
||||||
|
{oauth_cache_rest_failure_life_time, infinity},
|
||||||
{oauth_db_type,
|
{oauth_db_type,
|
||||||
fun(Host) -> ejabberd_config:default_db(Host, ejabberd_oauth) end},
|
fun(Host) -> ejabberd_config:default_db(Host, ejabberd_oauth) end},
|
||||||
{oauth_expire, 4294967},
|
{oauth_expire, 4294967},
|
||||||
@ -726,6 +729,7 @@ globals() ->
|
|||||||
oauth_cache_life_time,
|
oauth_cache_life_time,
|
||||||
oauth_cache_missed,
|
oauth_cache_missed,
|
||||||
oauth_cache_size,
|
oauth_cache_size,
|
||||||
|
oauth_cache_rest_failure_life_time,
|
||||||
oauth_db_type,
|
oauth_db_type,
|
||||||
oauth_expire,
|
oauth_expire,
|
||||||
oauth_use_cache,
|
oauth_use_cache,
|
||||||
|
@ -15,11 +15,11 @@
|
|||||||
-export([history_size/1]).
|
-export([history_size/1]).
|
||||||
-export([host/1]).
|
-export([host/1]).
|
||||||
-export([hosts/1]).
|
-export([hosts/1]).
|
||||||
|
-export([max_captcha_whitelist/1]).
|
||||||
|
-export([max_password/1]).
|
||||||
-export([max_room_desc/1]).
|
-export([max_room_desc/1]).
|
||||||
-export([max_room_id/1]).
|
-export([max_room_id/1]).
|
||||||
-export([max_room_name/1]).
|
-export([max_room_name/1]).
|
||||||
-export([max_password/1]).
|
|
||||||
-export([max_captcha_whitelist/1]).
|
|
||||||
-export([max_rooms_discoitems/1]).
|
-export([max_rooms_discoitems/1]).
|
||||||
-export([max_user_conferences/1]).
|
-export([max_user_conferences/1]).
|
||||||
-export([max_users/1]).
|
-export([max_users/1]).
|
||||||
@ -109,6 +109,18 @@ hosts(Opts) when is_map(Opts) ->
|
|||||||
hosts(Host) ->
|
hosts(Host) ->
|
||||||
gen_mod:get_module_opt(Host, mod_muc, hosts).
|
gen_mod:get_module_opt(Host, mod_muc, hosts).
|
||||||
|
|
||||||
|
-spec max_captcha_whitelist(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
|
||||||
|
max_captcha_whitelist(Opts) when is_map(Opts) ->
|
||||||
|
gen_mod:get_opt(max_captcha_whitelist, Opts);
|
||||||
|
max_captcha_whitelist(Host) ->
|
||||||
|
gen_mod:get_module_opt(Host, mod_muc, max_captcha_whitelist).
|
||||||
|
|
||||||
|
-spec max_password(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
|
||||||
|
max_password(Opts) when is_map(Opts) ->
|
||||||
|
gen_mod:get_opt(max_password, Opts);
|
||||||
|
max_password(Host) ->
|
||||||
|
gen_mod:get_module_opt(Host, mod_muc, max_password).
|
||||||
|
|
||||||
-spec max_room_desc(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
|
-spec max_room_desc(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
|
||||||
max_room_desc(Opts) when is_map(Opts) ->
|
max_room_desc(Opts) when is_map(Opts) ->
|
||||||
gen_mod:get_opt(max_room_desc, Opts);
|
gen_mod:get_opt(max_room_desc, Opts);
|
||||||
@ -127,18 +139,6 @@ max_room_name(Opts) when is_map(Opts) ->
|
|||||||
max_room_name(Host) ->
|
max_room_name(Host) ->
|
||||||
gen_mod:get_module_opt(Host, mod_muc, max_room_name).
|
gen_mod:get_module_opt(Host, mod_muc, max_room_name).
|
||||||
|
|
||||||
-spec max_password(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
|
|
||||||
max_password(Opts) when is_map(Opts) ->
|
|
||||||
gen_mod:get_opt(max_password, Opts);
|
|
||||||
max_password(Host) ->
|
|
||||||
gen_mod:get_module_opt(Host, mod_muc, max_password).
|
|
||||||
|
|
||||||
-spec max_captcha_whitelist(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
|
|
||||||
max_captcha_whitelist(Opts) when is_map(Opts) ->
|
|
||||||
gen_mod:get_opt(max_captcha_whitelist, Opts);
|
|
||||||
max_captcha_whitelist(Host) ->
|
|
||||||
gen_mod:get_module_opt(Host, mod_muc, max_captcha_whitelist).
|
|
||||||
|
|
||||||
-spec max_rooms_discoitems(gen_mod:opts() | global | binary()) -> non_neg_integer().
|
-spec max_rooms_discoitems(gen_mod:opts() | global | binary()) -> non_neg_integer().
|
||||||
max_rooms_discoitems(Opts) when is_map(Opts) ->
|
max_rooms_discoitems(Opts) when is_map(Opts) ->
|
||||||
gen_mod:get_opt(max_rooms_discoitems, Opts);
|
gen_mod:get_opt(max_rooms_discoitems, Opts);
|
||||||
|
Loading…
Reference in New Issue
Block a user