Skip to content

Commit 2cab8e4

Browse files
Merge pull request #14867 from rabbitmq/mergify/bp/v4.2.x/pr-14863
Support external SASL in AMQP 1.0 client URI (backport #14863)
2 parents b8d0ebf + 1355c79 commit 2cab8e4

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

deps/amqp10_client/src/amqp10_client.erl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@ parse_result(Map) ->
449449
Query = maps:from_list(uri_string:dissect_query(Query0)),
450450
Sasl = case Query of
451451
#{"sasl" := "anon"} -> anon;
452+
#{"sasl" := "external"} -> external;
452453
#{"sasl" := "plain"} when UserInfo =:= undefined orelse length(UserInfo) =:= 0 ->
453454
throw(plain_sasl_missing_userinfo);
454455
_ ->
@@ -618,6 +619,24 @@ parse_uri_test_() ->
618619
"keyfile=/etc/keyfile.key&fail_if_no_peer_cert=banana")),
619620
?_assertEqual({error, plain_sasl_missing_userinfo},
620621
parse_uri("amqp://my_host:9876?sasl=plain")),
622+
?_assertEqual(
623+
{ok, #{address => "my_host",
624+
port => 5671,
625+
hostname => <<"my_host">>,
626+
tls_opts => {secure_port, [{cacertfile, "/etc/cacert.pem"},
627+
{certfile, "/etc/client.crt"},
628+
{keyfile, "/etc/client.key"}]},
629+
sasl => external}},
630+
parse_uri("amqps://my_host?sasl=external&"
631+
"cacertfile=/etc/cacert.pem&"
632+
"certfile=/etc/client.crt&"
633+
"keyfile=/etc/client.key")),
634+
?_assertEqual(
635+
{ok, #{address => "my_proxy",
636+
port => 9876,
637+
hostname => <<"my_proxy">>,
638+
sasl => external}},
639+
parse_uri("amqp://my_proxy:9876?sasl=external")),
621640
?_assertEqual({error, path_segment_not_supported},
622641
parse_uri("amqp://my_host/my_path_segment:9876"))
623642
].

0 commit comments

Comments
 (0)