Hello,

After upgrading guacamole to 1.6 authentication through a database no longer 
works. I'm using MariaDB, guacamole 1.5.5 works without issue. I did perform 
the schema upgrade to 1.6, but that didn't fix it. I looked through the logs on 
guacamole and it looks like it doesn't load the mysql extension even if you 
have MYSQL_ENABLED set to true. I've also made sure that MSQL_DRIVER is set to 
mariadb.

The web interface will load, but logging in just gives the error "invalid login"
18:28:36.774 [http-nio-8080-exec-9] WARN o.a.g.event.EventLoggingListener - 
Authentication attempt from 10.22.39.45 for user "guacadmin" failed: unknown 
error (no specific failure recorded)

If I manually move the guacamole-auth-jdbc-mysql-1.6.0.jar into the extensions 
folder that's mapped on docker, it gives me additional information.

  *   17:58:54.251 [main] DEBUG o.a.g.e.LanguageResourceService - Merged 
strings with existing language: "zh"
  *   17:58:54.252 [main] INFO o.a.g.extension.ExtensionModule - Extension 
"MySQL Authentication" (mysql) loaded.
  *   17:58:54.252 [main] DEBUG o.a.g.extension.ExtensionModule - [2] Binding 
AuthenticationProvider 
"org.apache.guacamole.auth.file.FileAuthenticationProvider".
  *   17:58:54.254 [main] DEBUG o.a.g.extension.ExtensionModule - [0] Binding 
listener "org.apache.guacamole.event.EventLoggingListener".
  *   17:58:54.335 [main] INFO o.a.g.t.w.WebSocketTunnelModule - Loading 
JSR-356 WebSocket support...
  *   17:58:54.343 [main] DEBUG o.a.guacamole.tunnel.TunnelModule - WebSocket 
module loaded: org.apache.guacamole.tunnel.websocket.WebSocketTunnelModule
  *   17:58:54.410 [main] INFO o.a.g.event.EventLoggingListener - The Apache 
Guacamole web application has started.
  *   17:58:54.696 [main] WARN o.g.jersey.server.wadl.WadlFeature - JAXBContext 
implementation could not be found. WADL feature is disabled.
  *   05-Sep-2025 17:58:54.952 INFO [main] 
org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application 
archive [/tmp/catalina-base.6umWG2S13V/webapps/ROOT.war] has finished in 
[3,364] ms
  *   05-Sep-2025 17:58:54.955 INFO [main] 
org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler 
["http-nio-8080"]
  *   05-Sep-2025 17:58:54.963 INFO [main] 
org.apache.catalina.startup.Catalina.start Server startup in [3412] milliseconds
  *   17:59:08.679 [http-nio-8080-exec-2] DEBUG o.a.i.t.jdbc.JdbcTransaction - 
Opening JDBC Connection
  *   17:59:08.680 [http-nio-8080-exec-2] DEBUG 
o.a.g.a.j.DynamicallyAuthenticatedDataSource - Creating new database connection 
for pool.
  *   17:59:08.682 [http-nio-8080-exec-2] 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.
  *   17:59:08.683 [http-nio-8080-exec-2] DEBUG 
o.a.g.event.EventLoggingListener - Empty authentication attempt (login screen 
initialization) from 10.22.39.45 failed:
  *   ### Error querying database. Cause: java.sql.SQLException: Error setting 
driver on UnpooledDataSource.
  *   ### 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: Error setting driver on 
UnpooledDataSource.
  *   17:59:08.687 [http-nio-8080-exec-2] ERROR o.a.g.rest.RESTExceptionMapper 
- Unexpected internal error:
  *   ### Error querying database. Cause: java.sql.SQLException: Error setting 
driver on UnpooledDataSource.
  *   ### 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: Error setting driver on 
UnpooledDataSource.
  *   17:59:08.687 [http-nio-8080-exec-2] DEBUG o.a.g.rest.RESTExceptionMapper 
- Unexpected error in REST endpoint.
  *   org.apache.ibatis.exceptions.PersistenceException:
  *   ### Error querying database. Cause: java.sql.SQLException: Error setting 
driver on UnpooledDataSource.
  *   ### 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: Error setting driver on 
UnpooledDataSource.
  *   at 
org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
  *   at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:156)
  *   at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
  *   at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:142)
  *   at 
org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:75)
  *   at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
  *   at java.base/java.lang.reflect.Method.invoke(Method.java:580)
  *   at 
org.apache.ibatis.session.SqlSessionManager$SqlSessionInterceptor.invoke(SqlSessionManager.java:355)
  *   at jdk.proxy4/jdk.proxy4.$Proxy41.selectOne(Unknown Source)
  *   at 
org.apache.ibatis.session.SqlSessionManager.selectOne(SqlSessionManager.java:164)
  *   at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:87)
  *   at 
org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:141)
  *   at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
  *   at jdk.proxy4/jdk.proxy4.$Proxy45.selectOne(Unknown Source)
  *   at 
org.apache.guacamole.auth.jdbc.user.UserService.retrieveAuthenticatedUser(UserService.java:404)
  *   at 
org.apache.guacamole.auth.jdbc.JDBCAuthenticationProviderService.authenticateUser(JDBCAuthenticationProviderService.java:83)
  *   at 
org.apache.guacamole.auth.jdbc.InjectedAuthenticationProvider.authenticateUser(InjectedAuthenticationProvider.java:76)
  *   at 
org.apache.guacamole.extension.AuthenticationProviderFacade.authenticateUser(AuthenticationProviderFacade.java:202)
  *   at 
org.apache.guacamole.rest.auth.AuthenticationService.authenticateUser(AuthenticationService.java:132)
  *   at 
org.apache.guacamole.rest.auth.AuthenticationService.getAuthenticatedUser(AuthenticationService.java:235)
  *   at 
org.apache.guacamole.rest.auth.AuthenticationService.authenticate(AuthenticationService.java:391)
  *   at 
org.apache.guacamole.rest.auth.TokenRESTService.createToken(TokenRESTService.java:174)
  *   at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
  *   at java.base/java.lang.reflect.Method.invoke(Method.java:580)
  *   at 
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
  *   at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
  *   at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
  *   at 
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219)
  *   at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
  *   at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
  *   at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
  *   at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
  *   at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:256)
  *   at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
  *   at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
  *   at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
  *   at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
  *   at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
  *   at 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
  *   at 
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:235)
  *   at 
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684)
  *   at 
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
  *   at 
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
  *   at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:379)
  *   at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
  *   at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
  *   at 
com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
  *   at 
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
  *   at 
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
  *   at 
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
  *   at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
  *   at 
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
  *   at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
  *   at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
  *   at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
  *   at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
  *   at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  *   at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
  *   at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
  *   at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  *   at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:656)
  *   at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:762)
  *   at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  *   at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
  *   at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
  *   at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  *   at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
  *   at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
  *   at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  *   at 
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
  *   at 
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
  *   at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  *   at java.base/java.lang.Thread.run(Thread.java:1583)
  *   Caused by: java.sql.SQLException: Error setting driver on 
UnpooledDataSource.

Blommer Chocolate Company Confidentiality, LLC Notice: The information 
transmitted in this email is intended only for the person or entity to which it 
is addressed and may contain confidential and/or privileged material. Any 
review, retransmission, dissemination, disclosure or other use of, or taking of 
any action in reliance upon, this information by persons or entities other than 
the intended recipient is prohibited. If you received this email in error, 
please promptly contact the sender and immediately delete the email including 
all attachments from all electronic devices.

Reply via email to