aboutsummaryrefslogtreecommitdiff
path: root/src/eldap_utils.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-05-23 09:27:52 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-05-23 09:27:52 +0300
commit268065e5c495cc952bcb2ad737f8c40e188d8964 (patch)
tree829bbf2528f01a24e1d4eab5bc163a624f544a97 /src/eldap_utils.erl
parentImplement cache for mod_announce (diff)
Validate all certfiles on startup
Diffstat (limited to '')
-rw-r--r--src/eldap_utils.erl10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/eldap_utils.erl b/src/eldap_utils.erl
index 1dcdf0b48..5924c8af7 100644
--- a/src/eldap_utils.erl
+++ b/src/eldap_utils.erl
@@ -177,6 +177,7 @@ get_config(Host, Opts) ->
Backups = get_opt(ldap_backups, Host, Opts, []),
Encrypt = get_opt(ldap_encrypt, Host, Opts, none),
TLSVerify = get_opt(ldap_tls_verify, Host, Opts, false),
+ TLSCertFile = get_opt(ldap_tls_certfile, Host, Opts),
TLSCAFile = get_opt(ldap_tls_cacertfile, Host, Opts),
TLSDepth = get_opt(ldap_tls_depth, Host, Opts),
Port = get_opt(ldap_port, Host, Opts,
@@ -203,6 +204,7 @@ get_config(Host, Opts) ->
backups = Backups,
tls_options = [{encrypt, Encrypt},
{tls_verify, TLSVerify},
+ {tls_certfile, TLSCertFile},
{tls_cacertfile, TLSCAFile},
{tls_depth, TLSDepth}],
port = Port,
@@ -339,6 +341,7 @@ collect_parts_bit([],Acc,Uacc) ->
(ldap_rootdn) -> fun((binary()) -> binary());
(ldap_servers) -> fun(([binary()]) -> [binary()]);
(ldap_tls_certfile) -> fun((binary()) -> string());
+ (ldap_tls_cacertfile) -> fun((binary()) -> string());
(ldap_tls_depth) -> fun((non_neg_integer()) -> non_neg_integer());
(ldap_tls_verify) -> fun((hard | soft | false) -> hard | soft | false);
(ldap_filter) -> fun((binary()) -> binary());
@@ -366,6 +369,10 @@ opt_type(ldap_port) ->
opt_type(ldap_rootdn) -> fun iolist_to_binary/1;
opt_type(ldap_servers) ->
fun (L) -> [iolist_to_binary(H) || H <- L] end;
+opt_type(ldap_tls_certfile) ->
+ fun(S) ->
+ binary_to_list(ejabberd_pkix:try_certfile(S))
+ end;
opt_type(ldap_tls_cacertfile) ->
fun(S) -> binary_to_list(misc:try_read_file(S)) end;
opt_type(ldap_tls_depth) ->
@@ -390,4 +397,5 @@ opt_type(_) ->
[deref_aliases, ldap_backups, ldap_base, ldap_uids,
ldap_deref_aliases, ldap_encrypt, ldap_password,
ldap_port, ldap_rootdn, ldap_servers, ldap_filter,
- ldap_tls_cacertfile, ldap_tls_depth, ldap_tls_verify].
+ ldap_tls_certfile, ldap_tls_cacertfile, ldap_tls_depth,
+ ldap_tls_verify].