guacamole-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Gauthier <jus...@justin-tech.com>
Subject Re: OpenID-Connect HTTP 500
Date Thu, 08 Feb 2018 15:00:24 GMT
Hello everyone,

I have discovered that I had a the openid-redirect-uri incorrectly
specified. That issue has now been resolved, and I get a login screen
now.

Now, when I get that login screen, I can login with credentials stored
in the postgres database, but I do not get redirected to Keycloak. I
see a 403 message with the following information:

{"message":"Invalid login","translatableMessage":{"key":"Invalid
login","variables":null},"statusCode":null,"expected":[{"name":"usernam
e","type":"USERNAME"},{"name":"password","type":"PASSWORD"}],"type":"IN
VALID_CREDENTIALS"}

My understanding is that Guacamole should be redirecting me to Keycloak
to authenticate, and then I should be redirected back to Guacamole with
the authentication token, and it would not ask for the username and
password?

Though, this 403 appears to be standard when logging in, as I can see
the parameters in the dev tools when trying to login.

From what I can tell, the flow should be:

1. User visits guacamole server, unauthorized
2. Guacamole extension checks for id_token, doesn't find it, throws
GuacamoleInvalidCredentialsException
3. Javascript redirects user to identity provider site
4. User authorizes with identity provider
5. Identity provider redirects user back to guacamole site
(<site>/?id_token=...)
6. Javascript detects id_token, redirects user again
(<site>/#/id_token=...)
7. Guacamole extension receives the id token and verifies it. 

I don't appear to be getting to step 3, and possibly not step 2.

Regards,

Justin

On Thu, 2018-02-08 at 01:05 -0500, Justin Gauthier wrote:
> Hello everyone,
> 
> I am trying to setup Guacamole 0.9.14 (from source) on Tomcat 7.0.76
> on CentOS 7 (centos-release-7-4.1708), with the OpenID-Connect
> authentication module (from source), and Keycloak (http://www.keycloa
> k.org/). Both of these are sitting behind an Nginx reverse proxy with
> SSL offloading enabled.
> 
> These are the settings I have in /etc/guacamole/guacamole.properties:
> 
> # OpenID-connect
> openid-authorization-endpoint: https://keycloak.justin-tech.com/auth/
> realms/Justin-Tech/protocol/openid-connect/auth
> openid-jwks-endpoint: https://keycloak.justin-tech.com/auth/realms/Ju
> stin-Tech/protocol/openid-connect/certs
> openid-issuer: https://keycloak.justin-tech.com/auth/realms/Justin-Te
> ch
> openid-client-id: Guacamole
> openid-redirect-id: https://guacamole.justin-tech.com/
> #openid-scope: openid
> 
> Along with configuration for Postgres database and Duo auth (disabled
> for testing with OpenID).
> 
> Based on the documentation (https://guacamole.apache.org/doc/gug/open
> id-auth.html) I have gotten this information from the OpenID Connect
> Discovery JSON file at /.well-known/openid-configuration, with the
> client-id being based on the name of the Client ID property in
> Keycloak, and the redirect URL being the publicly accessible URL for
> Guacamole.
> 
> The settings in Keycloak are:
> 
> Client ID: Guacamole
> Access Type: public
> Standard Flow Enabled: Off
> Implicit Flow Enabled: On
> Direct Access Grants Enabled: Off
> Authorization Enabled: Off
> Root URL: https://guacamole.justin-tech.com
> Valid Redirect URIs: https://guacamole.justin-tech.com/*
> Admin URL: https://guacamole.justin-tech.com
> Web Origins: https://guacamole.justin-tech.com
> 
> Mappers are:
> 
> Username, given name, full name, email, and family name
> 
> Scope:
> 
> Full Scope Allowed: On
> 
> When trying to load the Guacamole login page, I am met with a blank
> white screen.
> 
> Nginx configuration:
> 
> upstream guacamole {
>   server guacamole01.corp.justin-tech.com:8080;
> }
> 
> server {
>     listen 443 ssl;
>     server_name guacamole.justin-tech.com;
>     ssl on;
>         # Remember to comment these out if you need to change their
> defaults
>         include snippets/ssl-defaults.conf;
> 
>     proxy_buffering off;
>     proxy_http_version 1.1;
>     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>     proxy_set_header Upgrade $http_upgrade;
>     proxy_set_header Connection $http_connection;
>     access_log off;
> 
>     location / {
>       proxy_pass http://guacamole/guacamole/;
>     }
> ssl_certificate /etc/letsencrypt/live/justin-tech.com/fullchain.pem;
> # managed by Certbot
> ssl_certificate_key /etc/letsencrypt/live/justin-
> tech.com/privkey.pem; # managed by Certbot
> 
> }
> 
> catalina.log:
> 
> Feb 08, 2018 12:03:41 AM
> com.sun.jersey.spi.container.ContainerResponse logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
> 	at
> org.apache.guacamole.rest.RESTExceptionWrapper.invoke(RESTExceptionWr
> apper.java:184)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:62)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMe
> thodInvokerFactory.java:60)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMeth
> odDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDis
> patchProvider.java:185)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDi
> spatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethod
> Rule.java:302)
> 	at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(Resourc
> eClassRule.java:108)
> 	at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHa
> ndPathRule.java:147)
> 	at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(R
> ootResourceClassesRule.java:84)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1511)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1442)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1391)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1381)
> 	at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponen
> t.java:416)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:538)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:716)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> 	at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefiniti
> on.java:263)
> 	at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition
> .java:178)
> 	at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServl
> etPipeline.java:91)
> 	at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI
> nvocation.java:62)
> 	at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilte
> rPipeline.java:118)
> 	at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:241)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:208)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:218)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:110)
> 	at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
> torBase.java:506)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:169)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:103)
> 	at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 962)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:116)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:445)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1087)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:04:19 AM
> org.apache.coyote.http11.AbstractHttp11Processor process
> INFO: Error parsing HTTP request header
>  Note: further occurrences of HTTP header parsing errors will be
> logged at DEBUG level.
> java.lang.IllegalArgumentException: Invalid character found in method
> name. HTTP method names must be tokens
> 	at
> org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(Interna
> lInputBuffer.java:136)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1000)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:04:19 AM
> org.apache.coyote.http11.AbstractHttp11Processor process
> INFO: Error parsing HTTP request header
>  Note: further occurrences of HTTP header parsing errors will be
> logged at DEBUG level.
> java.lang.IllegalArgumentException: Invalid character found in method
> name. HTTP method names must be tokens
> 	at
> org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(Interna
> lInputBuffer.java:136)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1000)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:04:25 AM
> org.apache.coyote.http11.AbstractHttp11Processor process
> INFO: Error parsing HTTP request header
>  Note: further occurrences of HTTP header parsing errors will be
> logged at DEBUG level.
> java.lang.IllegalArgumentException: Invalid character found in method
> name. HTTP method names must be tokens
> 	at
> org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(Interna
> lInputBuffer.java:136)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1000)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:04:25 AM
> org.apache.coyote.http11.AbstractHttp11Processor process
> INFO: Error parsing HTTP request header
>  Note: further occurrences of HTTP header parsing errors will be
> logged at DEBUG level.
> java.lang.IllegalArgumentException: Invalid character found in method
> name. HTTP method names must be tokens
> 	at
> org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(Interna
> lInputBuffer.java:136)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1000)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/jquery/2.1.3/dist/jquery.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular/1.3.16/angular.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/lodash/2.4.1/dist/lodash.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/filesaver/1.3.3/FileSaver.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-route/1.3.16/angular-route.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-touch/1.3.16/angular-touch.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/messageformat/1.0.2/messageformat.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate/2.8.0/angular-
> translate.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-INF/resources/webjars/blob-
> polyfill/1.0.20150320/Blob.js
> Feb 08, 2018 12:20:12 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-module-shim/0.0.4/angular-module-
> shim.js
> Feb 08, 2018 12:20:13 AM
> com.sun.jersey.spi.container.ContainerResponse logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
> 	at
> org.apache.guacamole.rest.RESTExceptionWrapper.invoke(RESTExceptionWr
> apper.java:184)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:62)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMe
> thodInvokerFactory.java:60)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMeth
> odDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDis
> patchProvider.java:185)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDi
> spatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethod
> Rule.java:302)
> 	at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(Resourc
> eClassRule.java:108)
> 	at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHa
> ndPathRule.java:147)
> 	at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(R
> ootResourceClassesRule.java:84)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1511)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1442)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1391)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1381)
> 	at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponen
> t.java:416)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:538)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:716)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> 	at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefiniti
> on.java:263)
> 	at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition
> .java:178)
> 	at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServl
> etPipeline.java:91)
> 	at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI
> nvocation.java:62)
> 	at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilte
> rPipeline.java:118)
> 	at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:241)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:208)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:218)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:110)
> 	at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
> torBase.java:506)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:169)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:103)
> 	at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 962)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:116)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:445)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1087)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-module-shim/0.0.4/angular-module-
> shim.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular/1.3.16/angular.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-touch/1.3.16/angular-touch.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/jquery/2.1.3/dist/jquery.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/lodash/2.4.1/dist/lodash.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-route/1.3.16/angular-route.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/filesaver/1.3.3/FileSaver.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/messageformat/1.0.2/messageformat.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate/2.8.0/angular-
> translate.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js
> Feb 08, 2018 12:32:53 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-INF/resources/webjars/blob-
> polyfill/1.0.20150320/Blob.js
> Feb 08, 2018 12:32:53 AM
> com.sun.jersey.spi.container.ContainerResponse logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
> 	at
> org.apache.guacamole.rest.RESTExceptionWrapper.invoke(RESTExceptionWr
> apper.java:184)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:62)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMe
> thodInvokerFactory.java:60)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMeth
> odDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDis
> patchProvider.java:185)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDi
> spatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethod
> Rule.java:302)
> 	at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(Resourc
> eClassRule.java:108)
> 	at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHa
> ndPathRule.java:147)
> 	at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(R
> ootResourceClassesRule.java:84)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1511)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1442)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1391)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1381)
> 	at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponen
> t.java:416)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:538)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:716)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> 	at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefiniti
> on.java:263)
> 	at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition
> .java:178)
> 	at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServl
> etPipeline.java:91)
> 	at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI
> nvocation.java:62)
> 	at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilte
> rPipeline.java:118)
> 	at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:241)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:208)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:218)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:110)
> 	at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
> torBase.java:506)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:169)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:103)
> 	at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 962)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:116)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:445)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1087)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/jquery/2.1.3/dist/jquery.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/lodash/2.4.1/dist/lodash.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular/1.3.16/angular.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-route/1.3.16/angular-route.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/messageformat/1.0.2/messageformat.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-touch/1.3.16/angular-touch.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate/2.8.0/angular-
> translate.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-INF/resources/webjars/blob-
> polyfill/1.0.20150320/Blob.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/filesaver/1.3.3/FileSaver.min.js
> Feb 08, 2018 12:33:07 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-module-shim/0.0.4/angular-module-
> shim.js
> Feb 08, 2018 12:33:07 AM
> com.sun.jersey.spi.container.ContainerResponse logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
> 	at
> org.apache.guacamole.rest.RESTExceptionWrapper.invoke(RESTExceptionWr
> apper.java:184)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:62)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMe
> thodInvokerFactory.java:60)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMeth
> odDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDis
> patchProvider.java:185)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDi
> spatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethod
> Rule.java:302)
> 	at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(Resourc
> eClassRule.java:108)
> 	at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHa
> ndPathRule.java:147)
> 	at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(R
> ootResourceClassesRule.java:84)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1511)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1442)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1391)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1381)
> 	at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponen
> t.java:416)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:538)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:716)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> 	at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefiniti
> on.java:263)
> 	at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition
> .java:178)
> 	at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServl
> etPipeline.java:91)
> 	at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI
> nvocation.java:62)
> 	at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilte
> rPipeline.java:118)
> 	at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:241)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:208)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:218)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:110)
> 	at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
> torBase.java:506)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:169)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:103)
> 	at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 962)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:116)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:445)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1087)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-route/1.3.16/angular-route.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-touch/1.3.16/angular-touch.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/messageformat/1.0.2/messageformat.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate/2.8.0/angular-
> translate.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular/1.3.16/angular.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/lodash/2.4.1/dist/lodash.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-INF/resources/webjars/blob-
> polyfill/1.0.20150320/Blob.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/jquery/2.1.3/dist/jquery.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/filesaver/1.3.3/FileSaver.min.js
> Feb 08, 2018 12:33:16 AM org.webjars.servlet.WebjarsServlet doGet
> INFO: Webjars resource requested: /META-
> INF/resources/webjars/angular-module-shim/0.0.4/angular-module-
> shim.js
> Feb 08, 2018 12:33:16 AM
> com.sun.jersey.spi.container.ContainerResponse logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
> 	at
> org.apache.guacamole.rest.RESTExceptionWrapper.invoke(RESTExceptionWr
> apper.java:184)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:62)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMe
> thodInvokerFactory.java:60)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMeth
> odDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDis
> patchProvider.java:185)
> 	at
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDi
> spatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> 	at
> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethod
> Rule.java:302)
> 	at
> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(Resourc
> eClassRule.java:108)
> 	at
> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHa
> ndPathRule.java:147)
> 	at
> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(R
> ootResourceClassesRule.java:84)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1511)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequ
> est(WebApplicationImpl.java:1442)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1391)
> 	at
> com.sun.jersey.server.impl.application.WebApplicationImpl.handleReque
> st(WebApplicationImpl.java:1381)
> 	at
> com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponen
> t.java:416)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:538)
> 	at
> com.sun.jersey.spi.container.servlet.ServletContainer.service(Servlet
> Container.java:716)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> 	at
> com.google.inject.servlet.ServletDefinition.doService(ServletDefiniti
> on.java:263)
> 	at
> com.google.inject.servlet.ServletDefinition.service(ServletDefinition
> .java:178)
> 	at
> com.google.inject.servlet.ManagedServletPipeline.service(ManagedServl
> etPipeline.java:91)
> 	at
> com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainI
> nvocation.java:62)
> 	at
> com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilte
> rPipeline.java:118)
> 	at
> com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:241)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:208)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:218)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:110)
> 	at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
> torBase.java:506)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:169)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:103)
> 	at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 962)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:116)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:445)
> 	at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1087)
> 	at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:637)
> 	at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:316)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
> java:1149)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:624)
> 	at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
> read.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> 
> localhost_access_log.txt:
> 
> 10.0.60.20 - - [08/Feb/2018:00:03:40 -0500] "GET
> /guacamole/app.css?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:03:40 -0500] "GET
> /guacamole/app.js?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:03:40 -0500] "GET
> /guacamole/api/languages?token=[TOKEN] HTTP/1.1" 200 136
> 10.0.60.20 - - [08/Feb/2018:00:03:40 -0500] "GET
> /guacamole/api/patches?token=[TOKEN] HTTP/1.1" 200 352
> 10.0.60.20 - - [08/Feb/2018:00:03:41 -0500] "POST
> /guacamole/api/tokens HTTP/1.1" 500 215
> 10.0.60.20 - - [08/Feb/2018:00:03:41 -0500] "GET
> /guacamole/translations/en.json HTTP/1.1" 304 -
> 10.0.1.227 - - [08/Feb/2018:00:04:19 -0500] "-" 400 -
> 10.0.1.227 - - [08/Feb/2018:00:04:19 -0500] "-" 400 -
> 10.0.1.227 - - [08/Feb/2018:00:04:25 -0500] "-" 400 -
> 10.0.1.227 - - [08/Feb/2018:00:04:25 -0500] "-" 400 -
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET /guacamole/
> HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/relocateParameters.js HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/jquery/2.1.3/dist/jquery.min.js HTTP/1.1" 200
> 84447
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular/1.3.16/angular.min.js HTTP/1.1" 200 126532
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/app.css?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js HTTP/1.1"
> 200 1353
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> HTTP/1.1" 200 865
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/lodash/2.4.1/dist/lodash.min.js HTTP/1.1" 200
> 28187
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/filesaver/1.3.3/FileSaver.min.js HTTP/1.1" 200
> 2446
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-route/1.3.16/angular-route.min.js
> HTTP/1.1" 200 4409
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-touch/1.3.16/angular-touch.min.js
> HTTP/1.1" 200 3608
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/messageformat/1.0.2/messageformat.min.js HTTP/1.1"
> 200 49339
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-translate/2.8.0/angular-translate.min.js
> HTTP/1.1" 200 20251
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js HTTP/1.1" 200 1277
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/blob-polyfill/1.0.20150320/Blob.js HTTP/1.1" 200
> 6148
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/webjars/angular-module-shim/0.0.4/angular-module-shim.js
> HTTP/1.1" 200 774
> 10.0.60.20 - - [08/Feb/2018:00:20:12 -0500] "GET
> /guacamole/app.js?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:20:13 -0500] "GET
> /guacamole/api/languages?token=[TOKEN] HTTP/1.1" 200 136
> 10.0.60.20 - - [08/Feb/2018:00:20:13 -0500] "GET
> /guacamole/api/patches?token=[TOKEN] HTTP/1.1" 200 352
> 10.0.60.20 - - [08/Feb/2018:00:20:13 -0500] "POST
> /guacamole/api/tokens HTTP/1.1" 500 215
> 10.0.60.20 - - [08/Feb/2018:00:20:13 -0500] "GET
> /guacamole/translations/en.json HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:32:52 -0500] "GET /guacamole/
> HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/app.css?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-module-shim/0.0.4/angular-module-shim.js
> HTTP/1.1" 200 774
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular/1.3.16/angular.min.js HTTP/1.1" 200 126532
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/relocateParameters.js HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-touch/1.3.16/angular-touch.min.js
> HTTP/1.1" 200 3608
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> HTTP/1.1" 200 865
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/jquery/2.1.3/dist/jquery.min.js HTTP/1.1" 200
> 84447
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/lodash/2.4.1/dist/lodash.min.js HTTP/1.1" 200
> 28187
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js HTTP/1.1"
> 200 1353
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-route/1.3.16/angular-route.min.js
> HTTP/1.1" 200 4409
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/filesaver/1.3.3/FileSaver.min.js HTTP/1.1" 200
> 2446
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/messageformat/1.0.2/messageformat.min.js HTTP/1.1"
> 200 49339
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-translate/2.8.0/angular-translate.min.js
> HTTP/1.1" 200 20251
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js HTTP/1.1" 200 1277
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/webjars/blob-polyfill/1.0.20150320/Blob.js HTTP/1.1" 200
> 6148
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/app.js?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/api/languages?token=[TOKEN] HTTP/1.1" 200 136
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/api/patches?token=[TOKEN] HTTP/1.1" 200 352
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "POST
> /guacamole/api/tokens HTTP/1.1" 500 215
> 10.0.60.20 - - [08/Feb/2018:00:32:53 -0500] "GET
> /guacamole/translations/en.json HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET /guacamole/
> HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/app.css?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/jquery/2.1.3/dist/jquery.min.js HTTP/1.1" 200
> 84447
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/relocateParameters.js HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> HTTP/1.1" 200 865
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/lodash/2.4.1/dist/lodash.min.js HTTP/1.1" 200
> 28187
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular/1.3.16/angular.min.js HTTP/1.1" 200 126532
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-route/1.3.16/angular-route.min.js
> HTTP/1.1" 200 4409
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/messageformat/1.0.2/messageformat.min.js HTTP/1.1"
> 200 49339
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-touch/1.3.16/angular-touch.min.js
> HTTP/1.1" 200 3608
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-translate/2.8.0/angular-translate.min.js
> HTTP/1.1" 200 20251
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js HTTP/1.1" 200 1277
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js HTTP/1.1"
> 200 1353
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/blob-polyfill/1.0.20150320/Blob.js HTTP/1.1" 200
> 6148
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/filesaver/1.3.3/FileSaver.min.js HTTP/1.1" 200
> 2446
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/webjars/angular-module-shim/0.0.4/angular-module-shim.js
> HTTP/1.1" 200 774
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/app.js?v=0.9.14 HTTP/1.1" 304 -
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/api/languages?token=[TOKEN] HTTP/1.1" 200 136
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "GET
> /guacamole/api/patches?token=[TOKEN] HTTP/1.1" 200 352
> 10.0.60.20 - - [08/Feb/2018:00:33:07 -0500] "POST
> /guacamole/api/tokens HTTP/1.1" 500 215
> 10.0.60.20 - - [08/Feb/2018:00:33:15 -0500] "GET /guacamole/
> HTTP/1.1" 200 4442
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/app.css?v=0.9.14 HTTP/1.1" 200 49193
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-route/1.3.16/angular-route.min.js
> HTTP/1.1" 200 4409
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/relocateParameters.js HTTP/1.1" 200 4505
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-touch/1.3.16/angular-touch.min.js
> HTTP/1.1" 200 3608
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/messageformat/1.0.2/messageformat.min.js HTTP/1.1"
> 200 49339
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-translate/2.8.0/angular-translate.min.js
> HTTP/1.1" 200 20251
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-translate-interpolation-
> messageformat/2.8.0/angular-translate-interpolation-
> messageformat.min.js HTTP/1.1" 200 1277
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-cookies/1.3.16/angular-cookies.min.js
> HTTP/1.1" 200 865
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/lodash/2.4.1/dist/lodash.min.js HTTP/1.1" 200
> 28187
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-translate-loader-static-
> files/2.8.0/angular-translate-loader-static-files.min.js HTTP/1.1"
> 200 1353
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/blob-polyfill/1.0.20150320/Blob.js HTTP/1.1" 200
> 6148
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/jquery/2.1.3/dist/jquery.min.js HTTP/1.1" 200
> 84447
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular/1.3.16/angular.min.js HTTP/1.1" 200 126532
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/filesaver/1.3.3/FileSaver.min.js HTTP/1.1" 200
> 2446
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/webjars/angular-module-shim/0.0.4/angular-module-shim.js
> HTTP/1.1" 200 774
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/app.js?v=0.9.14 HTTP/1.1" 200 299894
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/fonts/carlito/Carlito-Regular.woff HTTP/1.1" 200 269832
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/api/languages HTTP/1.1" 200 136
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/api/patches HTTP/1.1" 200 352
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/translations/en.json HTTP/1.1" 200 34802
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "POST
> /guacamole/api/tokens HTTP/1.1" 500 215
> 10.0.60.20 - - [08/Feb/2018:00:33:16 -0500] "GET
> /guacamole/images/logo-64.png HTTP/1.1" 200 5082
> 
> Nginx error.log:
> 
> 2018/02/07 22:26:02 [error] 1243#0: *16164 recv() failed (104:
> Connection reset by peer) while reading response header from
> upstream, client: 10.0.1.227, server: guacamole.justin-tech.com,
> request: "POST /api/tokens HTTP/1.1", upstream: "http://10.0.40.228:8
> 080/guacamole/api/tokens", host: "guacamole.justin-tech.com",
> referrer: "https://guacamole.justin-tech.com/"
> 2018/02/07 22:26:04 [error] 1243#0: *16164 connect() failed (111:
> Connection refused) while connecting to upstream, client: 10.0.1.227,
> server: guacamole.justin-tech.com, request: "DELETE
> /api/tokens/[DIFFERENT_TOKEN] HTTP/1.1", upstream: "http://10.0.40.22
> 8:8080/guacamole/api/tokens/[]DIFFEREBT_TOKEN", host:
> "guacamole.justin-tech.com", referrer: "https://guacamole.justin-tech
> .com/"
> 2018/02/07 22:26:04 [error] 1243#0: *16164 connect() failed (111:
> Connection refused) while connecting to upstream, client: 10.0.1.227,
> server: guacamole.justin-tech.com, request: "POST /api/tokens
> HTTP/1.1", upstream: "http://10.0.40.228:8080/guacamole/api/tokens",
> host: "guacamole.justin-tech.com", referrer: "https://guacamole.justi
> n-tech.com/"
> 2018/02/07 23:40:06 [error] 1243#0: *18031 upstream prematurely
> closed connection while reading upstream, client: 10.0.1.227, server:
> guacamole.justin-tech.com, request: "GET /app.js?v=0.9.14 HTTP/1.1",
> upstream: "http://10.0.40.228:8080/guacamole/app.js?v=0.9.14", host:
> "guacamole.justin-tech.com", referrer: "https://guacamole.justin-tech
> .com/“
> 
> I have believe that the settings based on the /.well-
> known/configuration and Guacamole manual are correct, however, I do
> not have another application that uses OpenID Connect to confirm that
> OpenID is setup and working correctly (if you have recommendations or
> a way to test this, that would be helpful).
> 
> From my limited understanding of the logs, it appears that Keycloak
> is sending invalid method names, which guacamole is failing to parse,
> which is leading to a server API exception. The nginx logs seem to
> indicate that a token is being refused during post, and during
> delete, and the connection is being prematurely closed while reading
> from the upstream server (guacamole). I am unable to determine the
> cause of why there is an exception, or the resolution. Due to the
> recent release of support for OpenID Connect I was unable to find any
> similar issues relating to Guacamole specifcally. Unfortunately my
> understanding of OpenID is very limited, so if I made an error in
> that configuration, I apologize ahead of time.
> 
> To note: the SAML connection is working between Keycloak and an
> Ansible AWX installation, leading me to believe that Keycloak itself
> is setup correctly.
> 
> Thank you,
> 
> Justin
Mime
View raw message