You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@guacamole.apache.org by "Massimo Fierro (Jira)" <ji...@apache.org> on 2022/03/10 02:25:00 UTC

[jira] [Created] (GUACAMOLE-1549) EXTENSION_PRIORITY env var is not respected by Docker container

Massimo Fierro created GUACAMOLE-1549:
-----------------------------------------

             Summary: EXTENSION_PRIORITY env var is not respected by Docker container
                 Key: GUACAMOLE-1549
                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1549
             Project: Guacamole
          Issue Type: Bug
          Components: guacamole-client
    Affects Versions: 1.4.0
         Environment: OS: Ubuntu 20.04.4 LTS x86_64
Docker images: v1.4
            Reporter: Massimo Fierro


Running guacamole-client and guacd with docker-compose, it seems like my preferred order of extension loading is not respected.

My docker-compose configuration file looks like the following:
{code:yaml}
version: '2.0'
networks:   
  guacnetwork_compose:     
    driver: bridge
services:   
  guacd:     
    container_name: guacd_compose
    image: guacamole/guacd
    networks:       
      guacnetwork_compose:
    restart: always
    volumes:       
      - /home/dockeruser/guacamole-data/drive:/drive:rw
      - /home/dockeruser/guacamole-data/record:/record:rw
    environment:       
      GUACD_LOG_LEVEL: debug
  guacamole:     
    container_name: guacamole_compose
    depends_on:
      - guacd
    environment:       
      GUACD_HOSTNAME: guacd
      MYSQL_HOSTNAME: *******
      MYSQL_PORT: 3306
      MYSQL_DATABASE: *******
      MYSQL_USER: *******
      MYSQL_PASSWORD: *******
      OPENID_AUTHORIZATION_ENDPOINT: *******
      OPENID_JWKS_ENDPOINT: *******
      OPENID_ISSUER: *******
      OPENID_CLIENT_ID:*******
      OPENID_REDIRECT_URI:*******
      EXTENSION_PRIORITY: "mysql,openid" 
  networks: 
    guacnetwork_compose: 
      ports: - 127.0.0.1:8089:8080/tcp 
  restart: always{code}
 
 As you can see the "EXTENSION_PRIORITY" env var is set, and according to start.sh it should be processed to set the appropriate property:
{code:bash}
// ...
# Set extension priority if specified
set_optional_property "extension-priority" "$EXTENSION_PRIORITY"

# Use api-session-timeout if specified.
if [ -n "$API_SESSION_TIMEOUT" ]; then
    associate_apisessiontimeout
fi

# Set logback level if specified
if [ -n "$LOGBACK_LEVEL" ]; then
    unzip -o -j /opt/guacamole/guacamole.war WEB-INF/classes/logback.xml -d $GUACAMOLE_HOME
    sed -i "s/level=\"info\"/level=\"$LOGBACK_LEVEL\"/" $GUACAMOLE_HOME/logback.xml
fi

#
# Finally start Guacamole (under Tomcat)
#

start_guacamole{code}
 

Nonetheless, the docker logs clearly indicate that the extensions are still loaded according to filename, ignoring the specified priority:
{noformat}
01:56:13.581 [localhost-startStop-1] INFO o.a.g.extension.ExtensionModule - Multiple extensions are installed and will be loaded in order of decreasing priority: 01:56:13.581 [localhost-startStop-1] INFO o.a.g.extension.ExtensionModule - - [openid] "OpenID Authentication Extension" (/home/guacamole/.guacamole/extensions/1-guacamole-auth-sso-openid-1.4.0.jar) 01:56:13.581 [localhost-startStop-1] INFO o.a.g.extension.ExtensionModule - - [mysql] "MySQL Authentication" (/home/guacamole/.guacamole/extensions/guacamole-auth-jdbc-mysql-1.4.0.jar) 01:56:13.581 [localhost-startStop-1] INFO o.a.g.extension.ExtensionModule - To change this order, set the "extension-priority" property or rename the extension files. The default priority of extensions is dictated by the sort order of t heir filenames.{noformat}
 

I tried to understand what the issue might be, to be able to submit a patch, but I am kind of stuck because I don't have a good grasp on the bootstrap process. I think solving the issue should be relatively simple for anyone with a better understanding of the codebase.

Thanks.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)