Description
If using special characters, e.g. "+" in livy password, creating HttpClient will result in 401 Unauthorized error.
To reproduce, we used URL like this to run Livy integration test against external cluster (ExternalCluster.scala):
https://user:pass%2bword@mylivyserver.com:8443/livy/v1
The problem is in LivyConnection.java, it is using URLDecoder.decode() to decode the userInfo we get from uri.getUserInfo(). Note that uri.getUserInfo() is already decoded string, a further decode() call will result in wrong password (e.g. change '+' to ' ').