Using that alternative connector did the trick (thank you!). Any idea why that 
worked while the previous one did not?




On 3/6/25 2:21 PM, Anakien Skywalker wrote:

Can you try this one:
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-$MYSQL_JDBC_VERSION.tar.gz
MYSQL_JDBC_VERSION=8.3.0

Remove the rest of drivers  and in guacamole config set driver mysql

чт, 6 мар. 2025 г., 22:51 Jason Bailey 
<jbai...@emerytelcom.com.invalid><mailto:jbai...@emerytelcom.com.invalid>:

This is what I have:

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/profile.d/tomcat9.sh


Also...


root@guac:/etc/guacamole# ls -l
total 20
drwxrwxr-x 2 tomcat tomcat 4096 Mar  5 15:15 extensions
-rw-r--r-- 1 tomcat tomcat 2847 Mar  6 11:14 guacamole.properties
-rw-r--r-- 1 tomcat tomcat  212 Mar  3 15:55 guacd.conf
drwxrwxr-x 2 tomcat tomcat 4096 Mar  5 17:14 lib


root@guac:/etc/guacamole/lib# ll
total 3896
-rw-r--r-- 1 tomcat tomcat  627652 Mar  5 17:14 mariadb-java-client-2.7.12.jar
-rw-r--r-- 1 tomcat tomcat  743409 Feb 21 11:27 mariadb-java-client-3.5.2.jar
-rw-r--r-- 1 tomcat tomcat 2609733 Mar  5 17:04 mysql-connector-java-9.2.0.jar




On 3/6/25 1:44 PM, Anakien Skywalker wrote:

Oh yeah,
And by the way:
Any of the following MySQL-compatible JDBC drivers are supported for connecting 
Guacamole with MySQL or MariaDB:

MySQL Connector/J
MariaDB Connector/J

Did you install them both? Because you have to install them both.

чт, 6 мар. 2025 г., 22:39 Anakien Skywalker 
<njuhaand...@gmail.com<mailto:njuhaand...@gmail.com>>:
Hello,
Did you set GUACAMOLE_HOME env var?

The Guacamole extension .jar will ultimately need to be placed within 
GUACAMOLE_HOME/extensions, while the JDBC driver must be downloaded separately 
from the database vendor and placed within GUACAMOLE_HOME/lib.
Please, check both directories and permissions.

If guacamole home env var is not set, this could be an issue. At least I had 
such problem deploying with docker.

чт, 6 мар. 2025 г., 22:26 Jason Bailey 
<jbai...@emerytelcom.com.invalid><mailto:jbai...@emerytelcom.com.invalid>:

Okay... LDAP works now. Progress! I still can't get MariaDB/MySQL to work, 
however.

This is what I'm seeing in the logs.

12:09:07.428 [http-nio-8080-exec-1] DEBUG o.a.i.t.jdbc.JdbcTransaction - 
Opening JDBC Connection
12:09:07.429 [http-nio-8080-exec-1] DEBUG 
o.a.g.a.j.DynamicallyAuthenticatedDataSource - Creating new database connection 
for pool.
12:09:07.429 [http-nio-8080-exec-1] WARN  o.a.g.e.AuthenticationProviderFacade 
- The "mysql" authentication provider has encountered an internal error which 
will halt the authentication process. If this is unexpe>
12:09:07.430 [http-nio-8080-exec-1] ERROR o.a.g.rest.RESTExceptionMapper - 
Unexpected internal error:
### Error querying database.  Cause: java.sql.SQLException: No suitable driver 
found for jdbc:mysql://127.0.0.1:3306/guacamole
### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve 
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: No suitable driver found for 
jdbc:mysql://127.0.0.1:3306/guacamole
12:09:07.430 [http-nio-8080-exec-1] DEBUG o.a.g.rest.RESTExceptionMapper - 
Unexpected error in REST endpoint.
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.sql.SQLException: No suitable driver 
found for jdbc:mysql://127.0.0.1:3306/guacamole
### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve 
org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: No suitable driver found for 
jdbc:mysql://127.0.0.1:3306/guacamole


The mariadb jdbc driver is in /etc/guacamole/lib and the folder is owned by the 
tomcat user with 755 permissions.

Suggestions? Thank you!



On 3/6/25 4:16 AM, Anakien Skywalker wrote:
Hello,
Please, look higher up in the logs, during the startup of Tomcat (or deployment
of the guacamole WAR file) to make sure it's loading the expected
extensions, and see if there are any other errors there. The error you are 
referring to may be related with mysql driver not getting loaded.

ср, 5 мар. 2025 г. в 21:12, Jason Bailey 
<jbai...@emerytelcom.com.invalid><mailto:jbai...@emerytelcom.com.invalid>:

Did you enable auto creation of accounts in the mysql plugin? Yes.

Did you create guacadmin user in mysql? I ran the 000-create-admin-user.sql 
script against the database and I can see the records present when I view the 
appropriate database tables.

Set extension priority? I have not done so thus far. It isn't being used in my 
old server, which is what I used as a template for the new server. That said, 
I'll add it.

Checking in the logs.... I see no mention of LDAP, so it must not be loading.

Nick, you were right, the permissions on the /etc/guacamole/lib and 
/etc/guacamole/extensions folders were wrong. I'm actually trying to build 
SaltStack state / provisioning that sets Apache Guacamole up, and I had copied 
and pasted the wrong block of YAML. Long story short, the folder was 644 
instead of 755. That has been fixed.

Unfortunately, even with all these changes, it's still not working. I'm now 
getting "DEBUG o.a.g.rest.RESTExceptionMapper - Client request rejected: 
Permission Denied". I get that even when I bypass the reverse proxy config and 
connect to tomcat directly with my browser.

This is what I have in my guacamole.properties file:

guacd-hostname: ::1
guacd-port:     4822

mysql-hostname: 127.0.0.1
mysql-database: guacamole
mysql-username: guacamole
mysql-password: LongGuacamolePassword
mysql-driver: mariadb
mysql-auto-create-accounts: true
mysql-server-timezone: America/Denver

ldap-hostname: corp.myorganization.com<http://corp.myorganization.com>
ldap-port: 389
ldap-encryption-method: none
ldap-username-attribute: sAMAccountName
ldap-search-bind-dn: cn=OBS Manager 
LDAP,OU=Services,DC=corp,DC=myorganization,DC=com
ldap-search-bind-password: MyReallyLongLdapPassword
ldap-user-base-dn: dc=corp,dc=myorganization,dc=com
ldap-user-search-filter: (memberOf=CN=OBS 
Users,OU=Services,DC=corp,DC=myorganization,DC=com)
ldap-max-search-results: 400

auth-provider: 
net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider

Thanks



On 3/5/25 4:41 AM, Anakien Skywalker wrote:
Hello,
Just a few things to check:
1. Did you enable auto creation accounts in mysql plugin? 
https://guacamole.apache.org/doc/gug/jdbc-auth.html#auto-creating-database-users
mysql-auto-create-accounts: true
2. Did you create guacadmin user in mysql?  You need to execute the following 
schema migration 002-create-admin-user.sql in your db in order to create admin 
user. Make sure all queries from migration are executed.
3. Set extension priority. In your log, I don't see any evidence you use ldap. 
But you could use ldap, mysql where mysql is fallback for guacadmin.

extension-priority: mysql, ldap
I am not sure of the correct naming. Please, check it yourself in your logs:

23:32:06.468 [main] INFO  o.a.g.extension.ExtensionModule -  - [postgresql] 
"PostgreSQL Authentication" 
(/etc/guacamole/extensions/guacamole-auth-jdbc-postgresql-1.5.5.jar)
23:32:06.468 [main] INFO  o.a.g.extension.ExtensionModule -  - [ldap] "LDAP 
Authentication" (/etc/guacamole/extensions/guacamole-auth-ldap-1.5.5.jar)

According to these logs, it would be:


extension-priority: postgresql, ldap


ср, 5 мар. 2025 г. в 03:37, Nick Couchman 
<vn...@apache.org<mailto:vn...@apache.org>>:
On Tue, Mar 4, 2025 at 7:00 PM Jason Bailey 
<jbai...@emerytelcom.com.invalid><mailto:jbai...@emerytelcom.com.invalid> wrote:

Replying to my own email here, but I did get debug logging working. I'm seeing 
a few extra things now when I try to login:

DEBUG o.a.g.r.auth.AuthenticationService - Anonymous authentication attempt 
from [10.0.0.86, 127.0.0.1] failed.

DEBUG o.a.g.rest.RESTExceptionMapper - Client request rejected: Permission 
Denied.

WARN  o.a.g.r.auth.AuthenticationService - Authentication attempt from 
[10.0.0.86, 127.0.0.1] for user "guacadmin" failed

DEBUG o.a.g.a.f.FileAuthenticationProvider - User mapping file 
"/etc/guacamole/user-mapping.xml" does not exist and will not be read

I don't have a user-mapping.xml anymore -- not since going to LDAP/MSAD 
authentication.

It does not appear to me that the LDAP authentication extension is loading at 
all. Are there other messages, prior to this, that indicate that it is loading 
successfully?

The message about the user-mapping.xml file is relatively benign - it's just 
warning you that it isn't there.



Is this an indication that the reverse proxy through Apache might be the issue?

Nope, don't think this has anything to do with reverse proxy - I think your 
Guacamole install is not picking up the LDAP extension at all. Maybe check that 
permissions are correct on all of the files/folders, such that the user running 
Tomcat has access to /etc/guacamole and all of the files and folders under it?

-Nick
*Confidentiality Notice* This email message may contain legally privileged 
and/or confidential information. If you are not the intended recipient(s), you 
are hereby notified that any dissemination, distribution or copying of this 
email message is strictly prohibited. If you have received this email in error, 
please immediately notify the sender and delete this email message from your 
computer.

Reply via email to