chore(authz): mongo connector support ssl

This commit is contained in:
Rory Z 2021-07-05 16:10:41 +08:00 committed by turtleDeng
parent 45ee504dc5
commit fd0a211629
3 changed files with 32 additions and 31 deletions

View File

@ -8,11 +8,16 @@ services:
environment:
MONGO_INITDB_DATABASE: mqtt
volumes:
- ../../apps/emqx_auth_mongo/test/emqx_auth_mongo_SUITE_data/mongodb.pem/:/etc/certs/mongodb.pem
- ../../apps/emqx/etc/certs/cert.pem:/etc/certs/cert.pem
- ../../apps/emqx/etc/certs/key.pem:/etc/certs/key.pem
networks:
- emqx_bridge
ports:
- "27017:27017"
command:
--ipv6
--bind_ip_all
--sslMode requireSSL
--sslPEMKeyFile /etc/certs/mongodb.pem
- /bin/bash
- -c
- |
cat /etc/certs/key.pem /etc/certs/cert.pem > /etc/certs/mongodb.pem
mongod --ipv6 --bind_ip_all --sslMode requireSSL --sslPEMKeyFile /etc/certs/mongodb.pem

View File

@ -90,6 +90,7 @@ rules() ->
[ hoconsc:ref(?MODULE, simple_rule)
, hoconsc:ref(?MODULE, sql_connector)
, hoconsc:ref(?MODULE, redis_connector)
, hoconsc:ref(?MODULE, mongo_connector)
])
}.

View File

@ -36,10 +36,28 @@
structs() -> [""].
fields("") ->
mongodb_fields() ++
mongodb_topology_fields() ++
[ {mongo_type, fun mongo_type/1}
, {servers, fun servers/1}
, {pool_size, fun emqx_connector_schema_lib:pool_size/1}
, {login, fun emqx_connector_schema_lib:username/1}
, {password, fun emqx_connector_schema_lib:password/1}
, {auth_source, fun auth_source/1}
, {database, fun emqx_connector_schema_lib:database/1}
] ++
% mongodb_rs_set_name_fields() ++
emqx_connector_schema_lib:ssl_fields().
emqx_connector_schema_lib:ssl_fields();
fields(topology) ->
[ {max_overflow, fun emqx_connector_schema_lib:pool_size/1}
, {overflow_ttl, fun duration/1}
, {overflow_check_period, fun duration/1}
, {local_threshold_ms, fun duration/1}
, {connect_timeout_ms, fun duration/1}
, {socket_timeout_ms, fun duration/1}
, {server_selection_timeout_ms, fun duration/1}
, {wait_queue_timeout_ms, fun duration/1}
, {heartbeat_frequency_ms, fun duration/1}
, {min_heartbeat_frequency_ms, fun duration/1}
].
on_jsonify(Config) ->
Config.
@ -178,29 +196,6 @@ host_port(HostPort) ->
[{host, Host1}]
end.
mongodb_fields() ->
[ {mongo_type, fun mongo_type/1}
, {servers, fun servers/1}
, {pool_size, fun emqx_connector_schema_lib:pool_size/1}
, {login, fun emqx_connector_schema_lib:username/1}
, {password, fun emqx_connector_schema_lib:password/1}
, {auth_source, fun auth_source/1}
, {database, fun emqx_connector_schema_lib:database/1}
].
mongodb_topology_fields() ->
[ {max_overflow, fun emqx_connector_schema_lib:pool_size/1}
, {overflow_ttl, fun duration/1}
, {overflow_check_period, fun duration/1}
, {local_threshold_ms, fun duration/1}
, {connect_timeout_ms, fun duration/1}
, {socket_timeout_ms, fun duration/1}
, {server_selection_timeout_ms, fun duration/1}
, {wait_queue_timeout_ms, fun duration/1}
, {heartbeat_frequency_ms, fun duration/1}
, {min_heartbeat_frequency_ms, fun duration/1}
].
% mongodb_rs_set_name_fields() ->
% [ {rs_set_name, fun emqx_connector_schema_lib:database/1}
% ].