Hi,

i had exaktly same issue... do you use a docker-compose.yml?

i also had this volume:

volumes:
    - ./extensions:/opt/guacamole/extensions

after i commented it out everything was working (only my branding.jar of course :) )

Erik


Am 05.09.2025 um 20:35 schrieb Dan Slauter:

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