summaryrefslogtreecommitdiff
path: root/deps/amqp_client/src/amqp_uri.erl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/amqp_client/src/amqp_uri.erl')
-rw-r--r--deps/amqp_client/src/amqp_uri.erl20
1 files changed, 13 insertions, 7 deletions
diff --git a/deps/amqp_client/src/amqp_uri.erl b/deps/amqp_client/src/amqp_uri.erl
index 5ebb11257e..bf650bfb2d 100644
--- a/deps/amqp_client/src/amqp_uri.erl
+++ b/deps/amqp_client/src/amqp_uri.erl
@@ -204,12 +204,15 @@ broker_add_query(Params, ParsedUri, Fields) ->
return({ParamsN, Pos1});
Value ->
try
- ValueParsed = parse_amqp_param(Field, Value),
- return(
- {setelement(Pos, ParamsN, ValueParsed), Pos1})
+ case parse_amqp_param(Field, Value) of
+ ignore ->
+ return({ParamsN, Pos1});
+ ValueParsed ->
+ return({setelement(Pos, ParamsN, ValueParsed), Pos1})
+ end
catch throw:Reason ->
- fail({invalid_amqp_params_parameter,
- Field, Value, Query, Reason})
+ fail({invalid_amqp_params_parameter,
+ Field, Value, Query, Reason})
end
end
end || Field <- Fields], {Params, 2}),
@@ -221,8 +224,11 @@ parse_amqp_param(Field, String) when Field =:= channel_max orelse
Field =:= connection_timeout orelse
Field =:= depth ->
find_integer_parameter(String);
-parse_amqp_param(Field, String) when Field =:= password ->
- find_identity_parameter(String);
+parse_amqp_param(Field, _String) when Field =:= password ->
+ %% https://github.com/rabbitmq/rabbitmq-server/issues/8129
+ %% Ignore `password` here since the parameter is used for setting a
+ %% certificate password, NOT an AMQP login password
+ return(ignore);
parse_amqp_param(Field, String) ->
fail({parameter_unconfigurable_in_query, Field, String}).