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.keycloak.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/Justin-Tech/protocol/openid-connect/certs
openid-issuer: https://keycloak.justin-tech.com/auth/realms/Justin-Tech
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/openid-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(RESTExceptionWrapper.java:184)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
        at 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
        at 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
        at 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
        at 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(InternalInputBuffer.java:136)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1000)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(InternalInputBuffer.java:136)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1000)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(InternalInputBuffer.java:136)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1000)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(InternalInputBuffer.java:136)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1000)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(RESTExceptionWrapper.java:184)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
        at 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
        at 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
        at 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
        at 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(RESTExceptionWrapper.java:184)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
        at 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
        at 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
        at 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
        at 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(RESTExceptionWrapper.java:184)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
        at 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
        at 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
        at 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
        at 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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(RESTExceptionWrapper.java:184)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
        at 
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
        at 
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
        at 
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
        at 
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
        at 
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
        at 
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
        at 
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
        at 
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
        at 
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.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(TaskThread.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:8080/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.228: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.justin-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

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to