[ https://issues.apache.org/jira/browse/GUACAMOLE-1575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Jumper closed GUACAMOLE-1575. ---------------------------------- Resolution: Invalid > History Error > -------------- > > Key: GUACAMOLE-1575 > URL: https://issues.apache.org/jira/browse/GUACAMOLE-1575 > Project: Guacamole > Issue Type: Bug > Affects Versions: 1.4.0 > Environment: Ubuntu 20.04.4 LTS > # mysql --version > mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu)) > extension : > guacamole-auth-jdbc-mysql-1.4.0.jar > guacamole-auth-totp-1.4.0.jar > lib : > mysql-connector-java-8.0.27.jar > # cat guacamole.properties > # Guacamole - Clientless Remote Desktop > # Copyright (C) 2022 Michael Jumper > # > # This program is free software: you can redistribute it and/or modify > # it under the terms of the GNU Affero General Public License as published > by > # the Free Software Foundation, either version 3 of the License, or > # (at your option) any later version. > # > # This program is distributed in the hope that it will be useful, > # but WITHOUT ANY WARRANTY; without even the implied warranty of > # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > # GNU Affero General Public License for more details. > # > # You should have received a copy of the GNU Affero General Public License > # along with this program. If not, see <http://www.gnu.org/licenses/>. > # > # https://guacamole.apache.org/doc/gug/configuring-guacamole.html > # Hostname and port of guacamole proxy > # guacd-hostname > # L'host su cui è in ascolto il demone proxy Guacamole (guacd). > # Se omesso, Guacamole presumerà che guacd sia in ascolto su localhost. > # guacd-host: localhost > guacd-hostname: localhost > # guacd-port > # La porta su cui è in ascolto il demone proxy Guacamole (guacd). > # Se omesso, Guacamole presumerà che guacd sia in ascolto sulla porta 4822. > guacd-port: 4822 > # guacd-ssl > # Se impostato su "true", Guacamole richiederà la crittografia SSL/TLS tra > # l'applicazione web e guacd. Per impostazione predefinita, la comunicazione > # tra il web l'applicazione e il guacd non saranno crittografati. > # > # Nota che se abiliti questa opzione, devi anche configurare guacd per usare > SSL > # tramite le opzioni della riga di comando. Queste opzioni sono documentate > nella > # manpage di guacd. Avrai bisogno di un certificato SSL e di una chiave > privata. > # guacd-ssl: true > # api-session-timeout > # La quantità di tempo, in minuti, per consentire sessioni Guacamole (token > di autenticazione) > # per restano valide, nonostante l'inattività. Se omesso, sessioni Guacamole > scadranno dopo 60 minuti > # di inattività. > # skip-if-unavailable > # Un elenco separato da virgole degli identificatori dei provider di > autenticazione che dovrebbe essere > # consentito fallire internamente senza interrompere l'autenticazione > processi. > # > # Ad esempio, per richiedere che Guacamole ignori i guasti dovuti alla > directory LDAP o il server MySQL > # sono inaspettatamente inattivi, consentendo altro provider di > autenticazione per continuare a funzionare: > # skip-if-unavailable: mysql, ldap > # > # Per impostazione predefinita, Guacamole adotta un approccio conservativo ai > fallimenti interni, interrompendo > # il processo di autenticazione se si verifica un errore interno all'interno > di uno qualsiasi fornitore di autenticazione. > # A seconda della natura dell'errore, questo potrebbe significa che nessun > utente può accedere fino a quando non viene > # risolta la causa dell'errore insieme a. Il skip-if-unavailablela proprietà > può essere utilizzata per informare esplicitamente > # Guacamole che uno o più sistemi sottostanti dovrebbero occasionalmente si > verificano guasti e che si dovrebbe fare affidamento > # su altri sistemi funzionanti se falliscono. > # api-session-timeout > # La quantità di tempo, in minuti, per consentire sessioni di Guacamole > (token di autenticazione) per rimanere > # validi nonostante l'inattività. Se omesso, Le sessioni di Guacamole > scadranno dopo 60 minuti di inattività. > api-session-timeout=30 > # api-max-request-size > # Il numero massimo di byte da accettare all'interno del corpo dell'entità di > qualsiasi particolare richiesta HTTP, > # dove 0 indica che nessun limite dovrebbe essere applicato. > # Se omesso, le richieste saranno limitate a 2097152 byte (2 MB) da > predefinito. Questo limite non si applica ai caricamenti di file. > # allowed-languages > # Una whitelist di chiavi di lingua separate da virgole da consentire come > lingua di visualizzazione scelte all'interno > # dell'interfaccia Guacamole. Ad esempio, per limitare il Guacamole solo per > inglese e tedesco, dovresti specificare: > # allowed-languages: en, de > # Poiché l'inglese è la lingua di riserva, utilizzata ogni volta che si trova > una chiave di traduzione mancante dalla > # lingua scelta, l'inglese dovrebbe essere omesso solo da questa list se sei > assolutamente sicuro che non manchino stringhe. > # > # Il JSON corrispondente di tutte le lingue integrate non elencate qui lo > farà sarà ancora disponibile su HTTP, ma l'interfaccia > # Guacamole non verrà utilizzata loro, né verranno utilizzati automaticamente > in base alla lingua del browser locale. > # Se omesso, tutte le lingue definite saranno disponibili. > # enable-environment-properties > # Se impostato su "true", Guacamole valuterà prima il suo ambiente da > ottenere il valore per una determinata proprietà di > # configurazione, prima di utilizzare un valore Specificato in > guacamole.propertieso tornare a un valore predefinito. > # Di abilitando questa opzione, puoi facilmente sovrascrivere qualsiasi altra > configurazione proprietà utilizzando una variabile di ambiente. > enable-environment-properties: true > # extension-priority > # Un elenco separato da virgole degli spazi dei nomi di tutte le estensioni > che dovrebbero essere caricato in un ordine specifico. > # Il valore speciale * può essere utilizzato al posto di a namespace per > rappresentare tutte le estensioni che non sono elencate. > # Tutte le estensioni elencati in modo esplicito verranno ordinati > nell'ordine indicato, mentre tutte le estensioni non elencati > # in modo esplicito verranno ordinati in base ai nomi dei file. > # > # Ad esempio, per garantire che il supporto per SAML sia caricato per primo : > # > # extension-priority: saml > # > # O per garantire che il supporto per SAML sia caricato per ultimo : > # > # extension-priority: *, saml > # > # Se non sei sicuro di quali spazi dei nomi si applicano o dell'ordine in cui > sono le tue estensioni caricato, controllare i registri Guacamole. > # Gli spazi dei nomi e l'ordine di caricamento di tutti le estensioni > installate vengono registrate da Guacamole durante l'avvio: > # > # ... > # 23:32:06.467 [main] INFO o.a.g.extension.ExtensionModule - Multiple > extensions are installed and will be loaded in order of decreasing priority: > # 23:32:06.468 [main] INFO o.a.g.extension.ExtensionModule - - > [postgresql] "PostgreSQL Authentication" > (/etc/guacamole/extensions/guacamole-auth-jdbc-postgresql-1.4.0.jar) > # 23:32:06.468 [main] INFO o.a.g.extension.ExtensionModule - - [ldap] > "LDAP Authentication" > (/etc/guacamole/extensions/guacamole-auth-ldap-1.4.0.jar) > # 23:32:06.468 [main] INFO o.a.g.extension.ExtensionModule - - [openid] > "OpenID Authentication Extension" > (/etc/guacamole/extensions/guacamole-auth-sso-openid-1.4.0.jar) > # 23:32:06.468 [main] INFO o.a.g.extension.ExtensionModule - - [saml] > "SAML Authentication Extension" > (/etc/guacamole/extensions/guacamole-auth-sso-saml-1.4.0.jar) > # 23:32:06.468 [main] INFO o.a.g.extension.ExtensionModule - To change > this order, set the "extension-priority" property or rename the extension > files. The default priority of extensions is dictated by the sort order of > their filenames. > # ... > # extension-priority: mysql > #lib-directory /var/lib/tomcat7/webapps/guacamole/WEB-INF/classes > #lib-directory /var/lib/tomcat7/webapps/ROOT/WEB-INF/classes > #lib-directory /var/lib/tomcat9/webapps/guacamole/WEB-INF/classes > lib-directory /var/lib/tomcat9/webapps/ROOT/WEB-INF/classes > # Auth provider class (authenticates user/pass combination, needed if using > the provided login screen) > #auth-provider: > net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider > #basic-user-mapping: /etc/guacamole/user-mapping.xml > auth-provider: > net.sourceforge.guacamole.net.auth.mysql.MySQLAuthenticationProvider > mysql-hostname: localhost > mysql-port: 3306 > mysql-database: guacamole > mysql-username: guacamole > mysql-password: XXXXXXXXXXXXXXX > # > totp-issuer: XXXXXXXXXXXXXXX > Reporter: Giampiero Zannella > Priority: Major > > Good evening > I installed guacamole apache 1.4.0 with JDBC. > if you try to access the connection history, if there are records in the > database, the program reports: > "ERROR An error has occurred and this action cannot be completed. If the > problem persists, please notify your system administrator or check your > system logs." > > the file log report : > [...] > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.002 > [https-openssl-apr-443-exec-51] DEBUG o.a.g.a.j.c.C.search - ==> Preparing: > SELECT guacamole_connection_history.connection_id, > guacamole_connection_history.connection_name, > guacamole_connection_history.remote_host, > guacamole_connection_history.sharing_profile_id, > guacamole_connection_history.sharing_profile_name, > guacamole_connection_history.user_id, guacamole_connection_history.username, > guacamole_connection_history.start_date, > guacamole_connection_history.end_date FROM guacamole_connection_history LEFT > JOIN guacamole_connection ON guacamole_connection_history.connection_id = > guacamole_connection.connection_id LEFT JOIN guacamole_user ON > guacamole_connection_history.user_id = guacamole_user.user_id LIMIT ? > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.003 > [https-openssl-apr-443-exec-51] DEBUG o.a.g.a.j.c.C.search - ==> Parameters: > 1000(Integer) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.003 > [https-openssl-apr-443-exec-51] DEBUG o.a.g.a.j.c.C.search - <== Total: 1 > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.004 > [https-openssl-apr-443-exec-51] DEBUG o.a.i.t.jdbc.JdbcTransaction - > Resetting autocommit to true on JDBC Connection > [com.mysql.cj.jdbc.ConnectionImpl@fa29c9c] > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.004 > [https-openssl-apr-443-exec-51] DEBUG o.a.i.t.jdbc.JdbcTransaction - Closing > JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@fa29c9c] > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.004 > [https-openssl-apr-443-exec-51] DEBUG o.a.i.d.pooled.PooledDataSource - > Testing connection 262315164 ... > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.004 > [https-openssl-apr-443-exec-51] DEBUG o.a.i.d.pooled.PooledDataSource - > Connection 262315164 is GOOD! > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.004 > [https-openssl-apr-443-exec-51] DEBUG o.a.i.d.pooled.PooledDataSource - > Returned connection 262315164 to pool. > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.004 > [https-openssl-apr-443-exec-51] ERROR o.a.g.rest.RESTExceptionMapper - > Unexpected internal error: Receiver class > org.apache.guacamole.auth.jdbc.connection.ModeledConnectionRecord does not > define or inherit an implementation of the resolved method 'java.util.UUID > getUUID()' of interface org.apache.guacamole.net.auth.ActivityRecord. > Apr 1 19:08:27 srv001-249 tomcat9[15618]: 19:08:27.005 > [https-openssl-apr-443-exec-51] DEBUG o.a.g.rest.RESTExceptionMapper - > Unexpected error in REST endpoint. > Apr 1 19:08:27 srv001-249 tomcat9[15618]: java.lang.AbstractMethodError: > Receiver class > org.apache.guacamole.auth.jdbc.connection.ModeledConnectionRecord does not > define or inherit an implementation of the resolved method 'java.util.UUID > getUUID()' of interface org.apache.guacamole.net.auth.ActivityRecord. > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.guacamole.net.auth.ActivityRecord.getIdentifier(ActivityRecord.java:92) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.guacamole.rest.history.APIActivityRecord.<init>(APIActivityRecord.java:99) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.guacamole.rest.history.APIConnectionRecord.<init>(APIConnectionRecord.java:57) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.guacamole.rest.history.ConnectionHistoryResource.toExternalRecord(ConnectionHistoryResource.java:46) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.guacamole.rest.history.ConnectionHistoryResource.toExternalRecord(ConnectionHistoryResource.java:31) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.guacamole.rest.history.ActivityRecordSetResource.getRecords(ActivityRecordSetResource.java:169) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/java.lang.reflect.Method.invoke(Method.java:566) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.internal.Errors.process(Errors.java:292) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.internal.Errors.process(Errors.java:274) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.internal.Errors.process(Errors.java:244) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.coyote.http2.StreamProcessor.service(StreamProcessor.java:365) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.coyote.http2.StreamProcessor.process(StreamProcessor.java:72) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.coyote.http2.StreamRunnable.run(StreamRunnable.java:35) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > Apr 1 19:08:27 srv001-249 tomcat9[15618]: #011at > java.base/java.lang.Thread.run(Thread.java:829) > Apr 1 19:08:49 srv001-249 tomcat9[15618]: 19:08:49.290 [pool-7-thread-1] > DEBUG o.a.g.a.t.u.CodeUsageTrackingService - TOTP tracking cleanup check > completed in 0 ms. > [...] > > The ERROR : > ERROR o.a.g.rest.RESTExceptionMapper - Unexpected internal error: Receiver > class org.apache.guacamole.auth.jdbc.connection.ModeledConnectionRecord does > not define or inherit an implementation of the resolved method > 'java.util.UUID getUUID()' of interface > org.apache.guacamole.net.auth.ActivityRecord. > > Who can help me > Thank you -- This message was sent by Atlassian Jira (v8.20.1#820001)