Giampiero Zannella created GUACAMOLE-1575:
---------------------------------------------

             Summary: 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
             Fix For: 1.4.0


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)

Reply via email to