If username is "nats" and password contains some URI escape characters for example "/iq/Vm/QXzfR8Q==" then connection fails.
Connection required provided using "URL" fails as CGI "unescape" is not user
and when password is passed as options then it fails during the check_password implemented in jruby-9.3.9.0/lib/ruby/stdlib/uri/generic.rb
Only option to make the connection is to change the password to have non-esacape characters or patch the nats code to unescape CGI characters passed in the username / password
Expected behavior
Support for CGI unescape to allow username / password with special characters
Observed behavior
If username is "nats" and password contains some URI escape characters for example "/iq/Vm/QXzfR8Q==" then connection fails. Connection required provided using "URL" fails as CGI "unescape" is not user and when password is passed as
options
then it fails during the check_password implemented injruby-9.3.9.0/lib/ruby/stdlib/uri/generic.rb
Only option to make the connection is to change the password to have non-esacape characters or patch the nats code to
unescape
CGI characters passed in the username / passwordExpected behavior
Support for CGI unescape to allow username / password with special characters
Server and client version
nats-pure (2.4.0)
Host environment
SLES
Steps to reproduce
nats_user = CGI.escape(options.NATS_USERNAME) nats_password = CGI.escape(options.NATS_USER_PASSWORD) nats_host = options.NATS_SERVER || ENV["NATS_SERVER"] || "nats_server" nats_port = options.port || ENV["NATS_PORT"] || "4222"