You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@guacamole.apache.org by "Frees, Jared" <fr...@buckeyemail.osu.edu> on 2018/06/06 21:02:10 UTC

Allowing LDAP attributes to be used as tokens: Internal Server Error

Hello,


This is my first post on this mailing list so please correct me if I am doing anything the wrong way.


I am trying to update the guacamole code to allow arbitrary LDAP attributes to be used as tokens. This is described in detail in JIRA issue: GUACAMOLE-524. I have updated AuthenticationProviderService.java, Credentials.java, StandardTokens.java, ConfigurationService.java, and LDAPGuacamoleProperties.java to add an arbitrary number of LDAP attributes into the Credentials object for a user and then to map those attributes as tokens in AuthenticationProviderService.java. These attributes get specified in guacamole.properties.


My code compiles fine with Maven, and I can update the WAR file in my Tomcat server and load the new webpage, but

when I try to login on the Guacamole login page, it returns an internal server error and I get this error in the logs:

Jun 06, 2018 4:07:31 PM 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:196)
        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)





I am not sure if this is enough information or too much, let me know if you need any other information.


Thanks,

Jared Frees


Re: Allowing LDAP attributes to be used as tokens: Internal Server Error

Posted by "Frees, Jared" <fr...@buckeyemail.osu.edu>.
I fixed this. I just needed to update my guacamole-auth-ldap-1.0.0.jar file.


Jared

________________________________
From: Nick Couchman <ni...@gmail.com>
Sent: Thursday, June 7, 2018 5:19:06 AM
To: dev@guacamole.apache.org
Subject: Re: Allowing LDAP attributes to be used as tokens: Internal Server Error

On Wed, Jun 6, 2018 at 5:02 PM, Frees, Jared <fr...@buckeyemail.osu.edu>
wrote:

> Hello,
>
>
> This is my first post on this mailing list so please correct me if I am
> doing anything the wrong way.
>
>
> I am trying to update the guacamole code to allow arbitrary LDAP
> attributes to be used as tokens. This is described in detail in JIRA issue:
> GUACAMOLE-524. I have updated AuthenticationProviderService.java,
> Credentials.java, StandardTokens.java, ConfigurationService.java, and
> LDAPGuacamoleProperties.java to add an arbitrary number of LDAP attributes
> into the Credentials object for a user and then to map those attributes as
> tokens in AuthenticationProviderService.java. These attributes get
> specified in guacamole.properties.
>
>
> My code compiles fine with Maven, and I can update the WAR file in my
> Tomcat server and load the new webpage, but
>
> when I try to login on the Guacamole login page, it returns an internal
> server error and I get this error in the logs:
>
> Jun 06, 2018 4:07:31 PM com.sun.jersey.spi.container.ContainerResponse
> logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
>

A couple of questions, here:
- Are there any other messages around this one that shed any light?  Any
other errors/warnings/etc.?  You might want to configure Guacamole Client
in DEBUG or TRACE mode - instructions on how to do that are here:
http://guacamole.apache.org/doc/gug/configuring-guacamole.html#webapp-logging
- You might want to update your fork of the git repo and rebase your
changes on the current upstream master.  There were some recent changes
(GUACAMOLE-566) that tweak how errors are handled within the REST API, and
it might actually help illuminate the issue in this case instead of
throwing this relatively generic error.

-Nick

Re: Allowing LDAP attributes to be used as tokens: Internal Server Error

Posted by Nick Couchman <ni...@gmail.com>.
On Wed, Jun 6, 2018 at 5:02 PM, Frees, Jared <fr...@buckeyemail.osu.edu>
wrote:

> Hello,
>
>
> This is my first post on this mailing list so please correct me if I am
> doing anything the wrong way.
>
>
> I am trying to update the guacamole code to allow arbitrary LDAP
> attributes to be used as tokens. This is described in detail in JIRA issue:
> GUACAMOLE-524. I have updated AuthenticationProviderService.java,
> Credentials.java, StandardTokens.java, ConfigurationService.java, and
> LDAPGuacamoleProperties.java to add an arbitrary number of LDAP attributes
> into the Credentials object for a user and then to map those attributes as
> tokens in AuthenticationProviderService.java. These attributes get
> specified in guacamole.properties.
>
>
> My code compiles fine with Maven, and I can update the WAR file in my
> Tomcat server and load the new webpage, but
>
> when I try to login on the Guacamole login page, it returns an internal
> server error and I get this error in the logs:
>
> Jun 06, 2018 4:07:31 PM com.sun.jersey.spi.container.ContainerResponse
> logException
> SEVERE: Mapped exception to response: 500 (Internal Server Error)
> org.apache.guacamole.rest.APIException
>

A couple of questions, here:
- Are there any other messages around this one that shed any light?  Any
other errors/warnings/etc.?  You might want to configure Guacamole Client
in DEBUG or TRACE mode - instructions on how to do that are here:
http://guacamole.apache.org/doc/gug/configuring-guacamole.html#webapp-logging
- You might want to update your fork of the git repo and rebase your
changes on the current upstream master.  There were some recent changes
(GUACAMOLE-566) that tweak how errors are handled within the REST API, and
it might actually help illuminate the issue in this case instead of
throwing this relatively generic error.

-Nick