[ 
https://issues.apache.org/jira/browse/GUACAMOLE-2214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Naoto Ogawa updated GUACAMOLE-2214:
-----------------------------------
    Summary: JSON authentication cannot display UTF-8 connection names in tabs  
(was: JSON Authentication fails with UTF-8 connection names)

> JSON authentication cannot display UTF-8 connection names in tabs
> -----------------------------------------------------------------
>
>                 Key: GUACAMOLE-2214
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-2214
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-auth-json
>    Affects Versions: 1.6.0
>            Reporter: Naoto Ogawa
>            Priority: Minor
>         Attachments: client_error.png, docker-compose-repro.yaml, 
> generate-auth-url.py
>
>
> When using the JSON Authentication plugin, connections whose names contain 
> UTF-8 (non-ASCII) characters cannot be used correctly.
> Environment:
> - Apache Guacamole 1.6.0
> - Docker deployment
> - JSON Authentication plugin enabled
> - Tomcat configured with URIEncoding="UTF-8"
> - Browser: Microsoft Edge / Chrome (reproducible in both)
> Steps to Reproduce:
> 1. Start the attached docker-compose configuration.
> 2. Generate an encrypted authentication URL using the attached Python script.
> 3. Open the generated URL in a browser.
> 4. Attempt to access the connection whose name contains non-ASCII characters.
> Expected Result:
> The connection should be listed and accessible regardless of whether the 
> connection name contains ASCII or UTF-8 characters.
> Actual Result:
> The connection either does not appear correctly or cannot be opened.  
> In the browser console, the following client-side error is observed:
> InvalidCharacterError: Failed to execute 'btoa' on 'Window':
> The string to be encoded contains characters outside of the Latin1 range.
> Additional Notes:
> - The same connection works correctly when using JDBC authentication.
> - The issue occurs even when Tomcat is configured with URIEncoding="UTF-8".
> - This suggests improper UTF-8 handling within the JSON Authentication plugin 
> or client-side encoding path.
> - The problem appears to be related to how connection identifiers are 
> generated or processed when multibyte characters are present.
> Example JSON used for reproduction
> (The connection name intentionally uses Japanese text to demonstrate the 
> issue):
> {
>   "username": "demo",
>   "connections": {
>     "テスト": {
>       "protocol": "ssh",
>       "parameters": {
>         "hostname": "ssh-target",
>         "port": "2222",
>         "username": "testuser",
>         "password": "testpass"
>       }
>     }
>   }
> }
> Attached Files:
> - docker-compose-repro.yaml — minimal Docker configuration used for 
> reproduction
> - generate-auth-url.py — minimal Python script to generate the encrypted 
> authentication URL
> - client-console-error.png — browser console screenshot showing the 
> client-side encoding error
> Example execution command:
> GUACAMOLE_URL=http://localhost:8080/guacamole \
> GUACAMOLE_JSON_SECRET=00000000000000000000000000000000 \
> python3 generate-auth-url.py



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to