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

Adrian Sandu closed GUACAMOLE-1188.
-----------------------------------
    Fix Version/s: 1.2.0
       Resolution: Invalid

It's WS not WSS !!!

> Docker uses HTTP Tunnel(Not WebSocket)
> --------------------------------------
>
>                 Key: GUACAMOLE-1188
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1188
>             Project: Guacamole
>          Issue Type: Bug
>    Affects Versions: 1.2.0
>            Reporter: Adrian Sandu
>            Priority: Minor
>             Fix For: 1.2.0
>
>
> I have the following docker-compose file.
> {code:java}
> version: "3.8"
> services:
>   postgres12:
>     image: 'postgres:12.3'
>     restart: always
>     hostname: 'postgres12'
>     volumes:
>       - './volumes/postgres12/pgdata:/var/lib/postgresql/data'
>       - 
> './volumes/postgres12/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d'
>     environment:
>       POSTGRES_DB: guacamole
>       POSTGRES_USER: guacamole
>       POSTGRES_PASSWORD: password
>       PGDATA: /var/lib/postgresql/data/pgdata  guacamole:
>     depends_on:
>       - guacd
>       - postgres12
>     links:
>       - guacd
>     image: 'guacamole/guacamole:1.2.0'
>     restart: always
>     hostname: 'guacamole'
>     ports:
>       - '127.0.0.1:8084:8080'
>     environment:
>       GUACD_HOSTNAME: guacd
>       POSTGRES_HOSTNAME: postgres12
>       POSTGRES_USER: guacamole
>       POSTGRES_PASSWORD: password
>       POSTGRES_DATABASE: guacamole
>   guacd:
>     image: 'guacamole/guacd:1.2.0'
>     restart: always
>     hostname: 'guacd'  adminer:
>     image: adminer
>     restart: always
>     hostname: 'adminer'
>     ports:
>       - 7588:8080
>  {code}
> And the startup logs
> {code:java}
> Starting docker-guacamole_guacd_1      ... done
> Starting docker-guacamole_adminer_1    ... done
> Starting docker-guacamole_postgres12_1 ... done
> Recreating docker-guacamole_guacamole_1 ... done
> Attaching to docker-guacamole_guacd_1, docker-guacamole_adminer_1, 
> docker-guacamole_postgres12_1, docker-guacamole_guacamole_1
> adminer_1     | [Thu Oct  1 07:20:14 2020] PHP 7.4.10 Development Server 
> (http://[::]:8080) started
> guacd_1       | guacd[6]: INFO: Guacamole proxy daemon (guacd) version 1.2.0 
> started
> guacd_1       | guacd[6]: INFO: Listening on host 0.0.0.0, port 4822
> postgres12_1  |
> postgres12_1  | PostgreSQL Database directory appears to contain a database; 
> Skipping initialization
> postgres12_1  |
> postgres12_1  | 2020-10-01 07:20:14.694 UTC [1] LOG:  starting PostgreSQL 
> 12.3 (Debian 12.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc 
> (Debian 8.3.0-6) 8.3.0, 64-bit
> postgres12_1  | 2020-10-01 07:20:14.694 UTC [1] LOG:  listening on IPv4 
> address "0.0.0.0", port 5432
> postgres12_1  | 2020-10-01 07:20:14.694 UTC [1] LOG:  listening on IPv6 
> address "::", port 5432
> postgres12_1  | 2020-10-01 07:20:14.702 UTC [1] LOG:  listening on Unix 
> socket "/var/run/postgresql/.s.PGSQL.5432"
> postgres12_1  | 2020-10-01 07:20:14.819 UTC [25] LOG:  database system was 
> shut down at 2020-10-01 07:18:23 UTC
> postgres12_1  | 2020-10-01 07:20:14.846 UTC [1] LOG:  database system is 
> ready to accept connections
> guacamole_1   | 01-Oct-2020 07:20:15.700 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Server version:        
> Apache Tomcat/8.5.41
> guacamole_1   | 01-Oct-2020 07:20:15.701 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Server built:          
> May 4 2019 09:17:16 UTC
> guacamole_1   | 01-Oct-2020 07:20:15.701 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Server number:         
> 8.5.41.0
> guacamole_1   | 01-Oct-2020 07:20:15.701 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log OS Name:               
> Linux
> guacamole_1   | 01-Oct-2020 07:20:15.701 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log OS Version:            
> 4.19.80-aufs
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Architecture:          
> amd64
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Java Home:             
> /usr/lib/jvm/java-8-openjdk-amd64/jre
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           
> 1.8.0_212-8u212-b01-1~deb9u1-b01
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            
> Oracle Corporation
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         
> /usr/local/tomcat
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         
> /usr/local/tomcat
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djdk.tls.ephemeralDHKeySize=2048
> guacamole_1   | 01-Oct-2020 07:20:15.702 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dignore.endorsed.dirs=
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dcatalina.base=/usr/local/tomcat
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Dcatalina.home=/usr/local/tomcat
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.startup.VersionLoggerListener.log Command line argument: 
> -Djava.io.tmpdir=/usr/local/tomcat/temp
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based 
> Apache Tomcat Native library [1.2.21] using APR version [1.5.2].
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 
> capabilities: IPv6 [true], sendfile [true], accept filters [false], random 
> [true].
> guacamole_1   | 01-Oct-2020 07:20:15.703 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL 
> configuration: useAprConnector [false], useOpenSSL [true]
> guacamole_1   | 01-Oct-2020 07:20:15.707 INFO [main] 
> org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL 
> successfully initialized [OpenSSL 1.1.0j  20 Nov 2018]
> guacamole_1   | 01-Oct-2020 07:20:15.780 INFO [main] 
> org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler 
> ["http-nio-8080"]
> guacamole_1   | 01-Oct-2020 07:20:15.790 INFO [main] 
> org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared 
> selector for servlet write/read
> guacamole_1   | 01-Oct-2020 07:20:15.802 INFO [main] 
> org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler 
> ["ajp-nio-8009"]
> guacamole_1   | 01-Oct-2020 07:20:15.803 INFO [main] 
> org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared 
> selector for servlet write/read
> guacamole_1   | 01-Oct-2020 07:20:15.803 INFO [main] 
> org.apache.catalina.startup.Catalina.load Initialization processed in 393 ms
> guacamole_1   | 01-Oct-2020 07:20:15.820 INFO [main] 
> org.apache.catalina.core.StandardService.startInternal Starting service 
> [Catalina]
> guacamole_1   | 01-Oct-2020 07:20:15.820 INFO [main] 
> org.apache.catalina.core.StandardEngine.startInternal Starting Servlet 
> Engine: Apache Tomcat/8.5.41
> guacamole_1   | 01-Oct-2020 07:20:15.837 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployWAR Deploying web application 
> archive [/usr/local/tomcat/webapps/guacamole.war]
> guacamole_1   | 01-Oct-2020 07:20:16.833 INFO [localhost-startStop-1] 
> org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned 
> for TLDs yet contained no TLDs. Enable debug logging for this logger for a 
> complete list of JARs that were scanned but no TLDs were found in them. 
> Skipping unneeded JARs during scanning can improve startup time and JSP 
> compilation time.
> guacamole_1   | 07:20:16.933 [localhost-startStop-1] INFO  
> o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".
> guacamole_1   | 07:20:16.992 [localhost-startStop-1] INFO  
> o.a.g.rest.auth.HashTokenSessionMap - Sessions will expire after 60 minutes 
> of inactivity.
> guacamole_1   | 07:20:17.092 [localhost-startStop-1] INFO  
> o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".
> guacamole_1   | 07:20:17.919 [localhost-startStop-1] INFO  
> o.a.g.extension.ExtensionModule - Extension "PostgreSQL Authentication" 
> loaded.
> guacamole_1   | 07:20:17.921 [localhost-startStop-1] INFO  
> o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".
> guacamole_1   | 07:20:17.988 [localhost-startStop-1] INFO  
> o.a.g.t.w.WebSocketTunnelModule - Loading JSR-356 WebSocket support...
> guacamole_1   | 01-Oct-2020 07:20:18.222 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.apache.guacamole.rest.RESTExceptionMapper as a provider class
> guacamole_1   | 01-Oct-2020 07:20:18.222 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.apache.guacamole.rest.extension.ExtensionRESTService as a 
> root resource class
> guacamole_1   | 01-Oct-2020 07:20:18.223 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.apache.guacamole.rest.language.LanguageRESTService as a root 
> resource class
> guacamole_1   | 01-Oct-2020 07:20:18.223 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.apache.guacamole.rest.patch.PatchRESTService as a root 
> resource class
> guacamole_1   | 01-Oct-2020 07:20:18.223 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.apache.guacamole.rest.auth.TokenRESTService as a root 
> resource class
> guacamole_1   | 01-Oct-2020 07:20:18.223 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.apache.guacamole.rest.session.SessionRESTService as a root 
> resource class
> guacamole_1   | 01-Oct-2020 07:20:18.223 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.register 
> Registering org.codehaus.jackson.jaxrs.JacksonJsonProvider as a provider class
> guacamole_1   | 01-Oct-2020 07:20:18.225 INFO [localhost-startStop-1] 
> com.sun.jersey.server.impl.application.WebApplicationImpl._initiate 
> Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM'
> guacamole_1   | 01-Oct-2020 07:20:18.279 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.apache.guacamole.rest.RESTExceptionMapper to 
> GuiceManagedComponentProvider with the scope "Singleton"
> guacamole_1   | 01-Oct-2020 07:20:18.281 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.codehaus.jackson.jaxrs.JacksonJsonProvider to 
> GuiceManagedComponentProvider with the scope "Singleton"
> guacamole_1   | 01-Oct-2020 07:20:18.585 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.apache.guacamole.rest.extension.ExtensionRESTService to 
> GuiceManagedComponentProvider with the scope "PerRequest"
> guacamole_1   | 01-Oct-2020 07:20:18.589 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.apache.guacamole.rest.language.LanguageRESTService to 
> GuiceManagedComponentProvider with the scope "PerRequest"
> guacamole_1   | 01-Oct-2020 07:20:18.589 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.apache.guacamole.rest.patch.PatchRESTService to 
> GuiceManagedComponentProvider with the scope "PerRequest"
> guacamole_1   | 01-Oct-2020 07:20:18.591 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.apache.guacamole.rest.auth.TokenRESTService to 
> GuiceManagedComponentProvider with the scope "PerRequest"
> guacamole_1   | 01-Oct-2020 07:20:18.592 INFO [localhost-startStop-1] 
> com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory.getComponentProvider
>  Binding org.apache.guacamole.rest.session.SessionRESTService to 
> GuiceManagedComponentProvider with the scope "PerRequest"
> guacamole_1   | 01-Oct-2020 07:20:18.603 INFO [localhost-startStop-1] 
> org.webjars.servlet.WebjarsServlet.init WebjarsServlet initialization 
> completed
> guacamole_1   | 01-Oct-2020 07:20:18.646 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployWAR Deployment of web 
> application archive [/usr/local/tomcat/webapps/guacamole.war] has finished in 
> [2,809] ms
> guacamole_1   | 01-Oct-2020 07:20:18.647 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deploying web 
> application directory [/usr/local/tomcat/webapps/ROOT]
> guacamole_1   | 01-Oct-2020 07:20:18.663 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web 
> application directory [/usr/local/tomcat/webapps/ROOT] has finished in [16] ms
> guacamole_1   | 01-Oct-2020 07:20:18.664 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deploying web 
> application directory [/usr/local/tomcat/webapps/docs]
> guacamole_1   | 01-Oct-2020 07:20:18.679 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web 
> application directory [/usr/local/tomcat/webapps/docs] has finished in [16] ms
> guacamole_1   | 01-Oct-2020 07:20:18.679 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deploying web 
> application directory [/usr/local/tomcat/webapps/host-manager]
> guacamole_1   | 01-Oct-2020 07:20:18.705 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web 
> application directory [/usr/local/tomcat/webapps/host-manager] has finished 
> in [26] ms
> guacamole_1   | 01-Oct-2020 07:20:18.705 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deploying web 
> application directory [/usr/local/tomcat/webapps/manager]
> guacamole_1   | 01-Oct-2020 07:20:18.727 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web 
> application directory [/usr/local/tomcat/webapps/manager] has finished in 
> [22] ms
> guacamole_1   | 01-Oct-2020 07:20:18.727 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deploying web 
> application directory [/usr/local/tomcat/webapps/examples]
> guacamole_1   | 01-Oct-2020 07:20:18.832 INFO [localhost-startStop-1] 
> org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web 
> application directory [/usr/local/tomcat/webapps/examples] has finished in 
> [105] ms
> guacamole_1   | 01-Oct-2020 07:20:18.834 INFO [main] 
> org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler 
> ["http-nio-8080"]
> guacamole_1   | 01-Oct-2020 07:20:18.844 INFO [main] 
> org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler 
> ["ajp-nio-8009"]
> guacamole_1   | 01-Oct-2020 07:20:18.854 INFO [main] 
> org.apache.catalina.startup.Catalina.start Server startup in 3050 ms
>  {code}
> And while trying to connect to a vnc, I get the following error in the logs, 
> altough the connection works.
> {code:java}
> guacamole_1   | 07:22:46.982 [http-nio-8080-exec-13] INFO  
> o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".
> guacamole_1   | 01-Oct-2020 07:22:46.981 INFO [http-nio-8080-exec-12] 
> org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request 
> header
> guacamole_1   |  Note: further occurrences of HTTP header parsing errors will 
> be logged at DEBUG level.
> guacamole_1   |         java.lang.IllegalArgumentException: Invalid character 
> found in method name. HTTP method names must be tokens
> guacamole_1   |                 at 
> org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:430)
> guacamole_1   |                 at 
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)
> guacamole_1   |                 at 
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> guacamole_1   |                 at 
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
> guacamole_1   |                 at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
> guacamole_1   |                 at 
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> guacamole_1   |                 at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> guacamole_1   |                 at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> guacamole_1   |                 at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> guacamole_1   |                 at java.lang.Thread.run(Thread.java:748)
> guacd_1       | guacd[6]: INFO: Creating new client for protocol "vnc"
> guacd_1       | guacd[6]: INFO: Connection ID is 
> "$47c41f61-353b-43bd-99a9-238148d8500f"
> guacd_1       | guacd[8]: INFO: Cursor rendering: local
> guacd_1       | guacd[8]: INFO: User "@7122a89f-4be4-4fb0-b3ca-94baf3699021" 
> joined connection "$47c41f61-353b-43bd-99a9-238148d8500f" (1 users now 
> present)
> guacamole_1   | 07:22:47.128 [http-nio-8080-exec-4] INFO  
> o.a.g.tunnel.TunnelRequestService - User "dexter" connected to connection "1".
> guacamole_1   | 07:22:47.130 [http-nio-8080-exec-4] INFO  
> o.a.g.t.h.RestrictedGuacamoleHTTPTunnelServlet - Using HTTP tunnel (not 
> WebSocket). Performance may be sub-optimal.{code}
> In the network inspect tab of the browser I see the request receiving a 500 
> response code.
> The web interface is behind a reverse proxy ( apache httpd ).
> {code:java}
>         <Location /guacamole/>
>                 ProxyPass http://127.0.0.1:8084/guacamole/ flushpackets=on
>                 ProxyPassReverse http://127.0.0.1:8084/guacamole/
>                 ModPagespeed off
>         </Location>
>         <Location /guacamole/websocket-tunnel>
>                 ProxyPass wss://127.0.0.1:8084/guacamole/websocket-tunnel
>                 ProxyPassReverse 
> wss://127.0.0.1:8084/guacamole/websocket-tunnel
>                 ModPagespeed off
>         </Location> {code}
>  
> Also, I noticed that just linking to the guacd container without the 
> GUACD_HOSTNAME env  doesn't work. The error message suggests it should work:
> {code:java}
> guacamole_1   | Every Guacamole instance needs a corresponding copy of guacd 
> running. To
> guacamole_1   | provide this, you must either:
> guacamole_1   |
> guacamole_1   | (a) Explicitly link that container with the link named 
> "guacd".
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to