diff options
Diffstat (limited to 'deps/amqp_client/src/amqp_uri.erl')
-rw-r--r-- | deps/amqp_client/src/amqp_uri.erl | 20 |
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}). |