Hi,
I've been using Apache Guacamole for a while now and have had quite a bot of
success with it.
Now I'm trying to use the Guacamole REST API to configure users and connections.
I'm able to successfully query the REST API for information, but now that I'm
trying to add/update information I'm not having any success. Would anyone be
able to give me some pointers?
I'm using the official Dockerized version of Apache Guacamole 1.4.0 from
DockerHub: https://hub.docker.com/r/guacamole/guacamole (and guacamole/guacd)
This Github repository documents the REST API that I'm trying to follow:
https://github.com/ridvanaltun/guacamole-rest-api-documentation#api-ref
When I attempt to create a new Guacamole connection, I receiving the following
generic error in the REST response:
Unexpected internal error
I see the following in the Tomcat logs (via 'docker logs CONTAINERID'):
...
15:57:19.557 [http-nio-8080-exec-3] ERROR o.a.g.rest.RESTExceptionMapper - An
internal error occurred, but did not contain an error message. Enable
debug-level logging for details.
15:57:19.559 [http-nio-8080-exec-3] DEBUG o.a.g.rest.RESTExceptionMapper -
Unexpected error in REST endpoint.
java.lang.NullPointerException: null
at
org.apache.guacamole.rest.directory.DirectoryObjectTranslator.filterAttributes(DirectoryObjectTranslator.java:145)
at
org.apache.guacamole.rest.connection.ConnectionObjectTranslator.filterExternalObject(ConnectionObjectTranslator.java:68)
...
I tried setting the LOGBACK_LEVEL environment variable to debug when creating
the docker instance and that did raise the logging level, but it hasn't
provided any insight into the unhelpful "An internal error occurred, but did
not contain an error message. Enable debug-level logging for details" message.
Also, per
https://guacamole.apache.org/doc/gug/configuring-guacamole.html#webapp-logging
I've edited logback.xml in the container and set: <appender name="GUAC-DEBUG"
... </appender> <root level="debug"> <appender-ref ref="GUAC-DEBUG"/> </root>
That didn't provide any additional logging information that I could see.
I've also captured the contents of the POST to create the connection and it
looks kosher. Here's roughly what it looks like (I've edited the token and
names):
POST /guacamole/api/session/data/mysql/connections?token=xxx...xxx HTTP/1.1
User-Agent: Faraday v0.14.0
Content-Type: application/json
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
Connection: close
Host: guac.my.dns.domain
Content-Length: 230
{"parentIdentifier":"ROOT","name":"XXXXX","protocol":"rdp","parameters":{"port":"3389","security":"nla","ignore-cert":"true","username":"${GUAC_USERNAME}","password":"${GUAC_PASSWORD}","hostname":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}}
Does anyone have any thoughts/suggestions as to what I need to do differently
to create connections using the REST API?
Dropping the parentIdentifier setting didn't help.
Thanks,
- Daniel
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]