Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.7.0
-
None
Description
I created a slider view in the Ambari-Admin UI. The view had one masked parameter ambari.server.password. I entered "admin" and saw in the POST that the decoded value was uploaded:
{ "ViewInstanceInfo": { "instance_name": "s2", "label": "s2", "visible": true, "icon_path": "", "icon64_path": "", "properties": { "ambari.server.url": "http://tdk-1:8080/api/c1/clusters/tdk", "ambari.server.username": "admin", "ambari.server.password": "admin", "view.kerberos.principal": "a", "view.kerberos.principal.keytab": "aa" }, "description": "s2" } }
After saved, I editing and changed another param (say view.kerberos.principal). This broke the masked param. The reason is that the GET call to view parameters gives the encoded value.
So POST takes decoded values and GET provides encoded values. So the next time UI PUTs, the encoded value is put resulting in original value corruption.
The API should either always provided encoded or decoded values, but not both.