Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion deps/rabbit/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ define ct_master.erl
halt(0)
endef

PARALLEL_CT_SET_1_A = unit_rabbit_ssl unit_cluster_formation_locking_mocks unit_cluster_formation_sort_nodes unit_collections unit_config_value_encryption unit_connection_tracking unit_amqp_reader unit_queue_decorator unit_stream_arg_validation vhost_tracing vhost_tracing_prop
PARALLEL_CT_SET_1_A = unit_definitions_import_https unit_rabbit_ssl unit_cluster_formation_locking_mocks unit_cluster_formation_sort_nodes unit_collections unit_config_value_encryption unit_connection_tracking unit_amqp_reader unit_queue_decorator unit_stream_arg_validation vhost_tracing vhost_tracing_prop
PARALLEL_CT_SET_1_B = amqp_address amqp_auth amqp_filter_prop amqp_filter_sql amqp_filter_sql_prop amqp_filter_sql_unit amqp_dotnet server_named_queue_prefix_prop signal_handling single_active_consumer unit_access_control_authn_authz_context_propagation unit_access_control_credential_validation unit_amqp091_content_framing unit_amqp091_server_properties unit_amqp_management unit_app_management rabbit_direct
PARALLEL_CT_SET_1_C = amqp_proxy_protocol amqpl_consumer_ack bindings rabbit_db_maintenance rabbit_db_msup rabbit_db_policy rabbit_db_queue rabbit_db_topic_exchange cluster_limit cluster_minority default_queue_type_prop passive_declare_permission term_to_binary_compat_prop topic_permission unicode unit_access_control user_tags_count_limit
PARALLEL_CT_SET_1_D = amqqueue_backward_compatibility channel channel_interceptor channel_operation_timeout classic_queue_prop config_schema peer_discovery_dns peer_discovery_tmp_hidden_node per_node_limit per_user_connection_channel_limit server_named_queue_prefix
Expand Down
6 changes: 4 additions & 2 deletions deps/rabbit/src/rabbit_definitions_import_https.erl
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
-export([
is_enabled/0,
load/1,
load_with_hashing/3
load_with_hashing/3,
tls_options_or_default/1
]).


Expand Down Expand Up @@ -64,7 +65,8 @@ load_with_hashing(Proplist, PreviousHash, Algo) ->
?LOG_DEBUG("Loading definitions with content hashing enabled, HTTPS URL: ~ts, previous hash value: ~ts",
[URL, rabbit_misc:hexify(PreviousHash)]),

TLSOptions = tls_options_or_default(Proplist),
TLSOptions0 = tls_options_or_default(Proplist),
TLSOptions = rabbit_ssl:wrap_password_opt(TLSOptions0),
HTTPOptions = http_options(TLSOptions),

case httpc_get(URL, HTTPOptions) of
Expand Down
63 changes: 63 additions & 0 deletions deps/rabbit/test/unit_definitions_import_https_SUITE.erl
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
%% This Source Code Form is subject to the terms of the Mozilla Public
%% License, v. 2.0. If a copy of the MPL was not distributed with this
%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
%%
%% Copyright (c) 2007-2026 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. All rights reserved.
%%

-module(unit_definitions_import_https_SUITE).

-include_lib("eunit/include/eunit.hrl").

-compile(export_all).

all() ->
[
{group, parallel_tests}
].

groups() ->
[
{parallel_tests, [parallel], [
tls_options_explicit_ssl_options,
tls_options_default_when_absent,
tls_options_default_when_empty_proplist,
tls_options_single_override,
tls_options_map_input
]}
].


tls_options_explicit_ssl_options(_Config) ->
MyOpts = [{verify, verify_none}, {versions, ['tlsv1.3']}],
Proplist = [{url, "https://example.com/defs.json"},
{ssl_options, MyOpts}],
MyOpts = rabbit_definitions_import_https:tls_options_or_default(Proplist),
passed.

tls_options_default_when_absent(_Config) ->
Proplist = [{url, "https://example.com/defs.json"}],
Result = rabbit_definitions_import_https:tls_options_or_default(Proplist),
?assertEqual(error, proplists:get_value(log_level, Result)),
?assertEqual(['tlsv1.2'], proplists:get_value(versions, Result)),
passed.

tls_options_default_when_empty_proplist(_Config) ->
Result = rabbit_definitions_import_https:tls_options_or_default([]),
?assertEqual(error, proplists:get_value(log_level, Result)),
?assertEqual(['tlsv1.2'], proplists:get_value(versions, Result)),
passed.

tls_options_single_override(_Config) ->
MyOpts = [{verify, verify_none}],
Proplist = [{url, "https://example.com/defs.json"},
{ssl_options, MyOpts}],
MyOpts = rabbit_definitions_import_https:tls_options_or_default(Proplist),
passed.

tls_options_map_input(_Config) ->
MyOpts = #{verify => verify_none, versions => ['tlsv1.3']},
Proplist = #{url => "https://example.com/defs.json",
ssl_options => MyOpts},
MyOpts = rabbit_definitions_import_https:tls_options_or_default(Proplist),
passed.