Sunstone does not support extended ASCII characters inside the user password
|Assignee:||Hector Sanjuan||% Done:|
|Target version:||Release 3.0|
If the user password contains extended ASCII characters, the user is not able to log in (invalid username or password).
#1 Updated by Hector Sanjuan over 9 years ago
- Resolution set to wontfix
OpenNebula is saving special characters as scaped string in the datatables:
User "Ã±" becomes <NAME>ñ</NAME>
Making the comparison between the user input field and the database username difficult.
Additionally in order to get the "Ã±" correctly on the server side, there is a problem regarding rack basic auth. Rack auth module decodes the Authentication base64 string as UTF-8. However, this string is normally encoded by Firefox and Chrome (if all chars are allowed) as if it was ISO-8859-1. The page charset must then be set to ISO-8859-1 or some forbidden codes will appear on the base64 string when decoding. That said, Rack is decoding this string and assiging UTF-8 encoding. string.force_encoding("ISO-8859-1") must be done on the server side in order to have ruby interpret the string correctly as "Ã±". From there, it can (and should be converted) to real UTF-8 in order to be able to make comparisons with UTF-8 strings from the database. (string.encode("UTF-8")).
Tried unsucessfully to find a Sunstone workaround for all this. But as long as OpenNebula is not saving "Ã±" and others in the database as what they are (or at least extracting them and turning ñ into "Ã±"), this has not much sense and will keep special characters as unsupported.