Good morning/afternoon/night to you all!
I am writing this as I believe it is a very silly mistake but I am not
savvy enough on Guacamole+Tomcat to identify the issue.
I had a standalone Guacamole 1.4.0 Installation which is reachable through
a NGINX Reverse Proxy. The access to Guacamole was using local
authentication with the user-mapping.xml user definition file and it worked.

I've followed all the steps on the documentation to upgrade and install
Guacamole Server on Ubuntu 20.04.
* I have made my guacamole Install by compiling it from source code on
1.5.0. It compiles and installs ok.
* Guacamole installed as root <-- I know I have to correct this at some
point in the future.
* Same access through NGINX
* I am using init.d start scripts managing it as a legacy systemctl unit.
* Guacamole home is /etc/guacamole as default
* I decided to use mariadb instead of MySQL, so I installed it using the
tutorial from DigitalOcean at:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04
* I have downloaded the JDBC extension package at:
https://apache.org/dyn/closer.lua/guacamole/1.5.0/binary/guacamole-auth-jdbc-1.5.0.tar.gz?action=download
* I have placed this extension at /etc/guacamole/extensions
* I created the database per the instructions on the manual.
* I downloaded the DB connector for MariaDB at:
https://mariadb.com/kb/en/about-mariadb-connector-j/
* I placed the connector at /etc/guacamole/lib
* Here is my guacamole.properties file contents:
guacd-hostname: localhost
guacd-port: 4822
# MariaDB/MySQL properties
mysql-hostname: localhost
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: somepassword
mysql-driver: mariadb
** I added the driver definition to mariadb
* Restarted tomcat 9

When I try to login to guacamole I see an error that the action could not
be completed and contact the administrator.
So, it is an error with the DB connector. When looking at:
/va/log/tomcat9/catalina.out here is the output:
[2023-03-08 16:03:47] [info] 16:03:47.527 [http-nio-8080-exec-10] WARN
 o.a.g.e.AuthenticationProviderFacade - The "mysql" authentication provider
has encountered an internal error which will halt the authentication
process. If this is unexpected or you are the developer of this
authentication provider, you may wish to enable debug-level logging. If
this is expected and you wish to ignore such failures in the future, please
set "skip-if-unavailable: mysql" within your guacamole.properties.
[2023-03-08 16:03:47] [info] 16:03:47.527 [http-nio-8080-exec-10] ERROR
o.a.g.rest.RESTExceptionMapper - Unexpected internal error:
[2023-03-08 16:03:47] [info] ### Error querying database.  Cause:
java.sql.SQLException: No suitable driver found for
jdbc:mysql://localhost:3306/guacamole_db
[2023-03-08 16:03:47] [info] ### The error may exist in
org/apache/guacamole/auth/jdbc/user/UserMapper.xml
[2023-03-08 16:03:47] [info] ### The error may involve
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
[2023-03-08 16:03:47] [info] ### The error occurred while executing a query
*[2023-03-08 16:03:47] [info] ### Cause: java.sql.SQLException: No suitable
driver found for jdbc:mysql://localhost:3306/guacamole_db*

It is CLEAR as light that Tomcat9 is unable to read/reach the mariadb
connector. But for the love of me, I can't find why tomcat9 is unable to
read/reach the connector at /etc/guacamole/lib
/etc/guacamole is owned by root with group root with permissions
rwx,r-x,r-x which I believe is correct. Beyond that I do not know what may
be wrong.
I really believe this is a very simple mistake that I am overseeing.
Any help would be really appreciated!
Regards,
David.

Reply via email to