diff --git a/src/ejabberd_options.erl b/src/ejabberd_options.erl index 2e061f1c4..b74dea045 100644 --- a/src/ejabberd_options.erl +++ b/src/ejabberd_options.erl @@ -409,7 +409,15 @@ opt_type(websocket_ping_interval) -> opt_type(websocket_timeout) -> econf:timeout(second); opt_type(jwt_key) -> - econf:binary(). + econf:and_then( + econf:file(), + fun(Path) -> + case file:read_file(Path) of + {ok, Binary} -> Binary; + {error, Reason} -> + econf:fail({jtw_key_error, Reason}) + end + end). %% We only define the types of options that cannot be derived %% automatically by tools/opt_type.sh script