[
https://issues.apache.org/jira/browse/GUACAMOLE-1575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Jumper updated GUACAMOLE-1575:
-----------------------------------
Fix Version/s: (was: 1.4.0)
> 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)