[QGIS-it-user] Plugin cxf_in - errore accesso al database di georeferenzazione

Mi ha risposto poco dopo l’autore del plugin, che ringrazio moltissimo e che ha sistemato l’errore. Per questo motivo sei riuscito a loggarti.

Saluti.

Ludovico

Buonasera Ludovico,
io ad oggi riscontro ancora lo stesso problema di connessione al database per la georeferenziazione. Ho provato anche a pulire la cache di QGIS come suggerito nella risposta alla tua mail ma nulla. Hai fatto altre operazioni per riuscire a connetterti o è bastato l’intervento dello sviluppatore?

Grazie
Roberta

Il giorno mer 17 nov 2021 alle ore 15:59 Ludovico Frate <ludovicofrate@hotmail.it> ha scritto:

Mi ha risposto poco dopo l’autore del plugin, che ringrazio moltissimo e che ha sistemato l’errore. Per questo motivo sei riuscito a loggarti.

Saluti.

Ludovico

Inviato da Posta per Windows


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Arch. Roberta Fagandini, PhD

GIS and Remote Sensing Technician

Gter srl (Unige spin-off)

Via Jacopo Ruffini 9/1A - 16128 Genova

P.IVA/CF 01998770992

ph: 010-0899150

E-mail: roberta.fagandini@gter.it

skype: roberta.fagandini

www.gter.it

Gter social

www.twitter.com/Gteronline - www.facebook.com/Gteronline -

www.linkedin.com/company/gter-srl-innovazione-in-geomatica-gnss-e-gis

Buongiorno a tutti,
dopo ulteriori verifiche, ho notato che l’errore di login al DB per la georeferenziazione si presenta solo su QGIS (3.16.14 e 3.22.1) installato con OSGeo4W v2 ovvero il repository con le “nuove” dipendenze (in particolare Python 3.9). Utilizzando invece la stessa versione LTR di QGIS (3.16.14) ma installata con la “vecchia” OSGeo4W (Python 3.7) l’errore python alla connessione non si verifica.

Saluti,
Roberta

···

Arch. Roberta Fagandini, PhD

GIS and Remote Sensing Technician

Gter srl (Unige spin-off)

Via Jacopo Ruffini 9/1A - 16128 Genova

P.IVA/CF 01998770992

ph: 010-0899150

E-mail: roberta.fagandini@gter.it

skype: roberta.fagandini

www.gter.it

Gter social

www.twitter.com/Gteronline - www.facebook.com/Gteronline -

www.linkedin.com/company/gter-srl-innovazione-in-geomatica-gnss-e-gis

Ciao Roberta,
grazie per l’aggiornamento.

Potresti specificare quale errore, esattamente, riscontri?

A presto.

Andrea

Roberta Fagandini Mon, 27 Dec 2021 04:01:00 -0800

Buongiorno a tutti,
dopo ulteriori verifiche, ho notato che l'errore di login al DB per la
georeferenziazione si presenta solo su QGIS (3.16.14 e 3.22.1) installato
con OSGeo4W v2 ovvero il repository con le "nuove" dipendenze (in
particolare Python 3.9). Utilizzando invece la stessa versione LTR di QGIS
(3.16.14) ma installata con la "vecchia" OSGeo4W (Python 3.7) l'errore
python alla connessione non si verifica.

Ciao Andrea,
si hai ragione, non ho specificato che l’errore è lo stesso che otteneva anche Ludovico, lo riporto di seguito:

2021-12-27T16:24:59 WARNING Traceback (most recent call last):
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 1346, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File “C:\OSGeo4W\apps\Python39\lib\http\client.py”, line 1253, in request
self._send_request(method, url, body, headers, encode_chunked)
File “C:\OSGeo4W\apps\Python39\lib\http\client.py”, line 1299, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File “C:\OSGeo4W\apps\Python39\lib\http\client.py”, line 1248, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File “C:\OSGeo4W\apps\Python39\lib\http\client.py”, line 1008, in _send_output
self.send(msg)
File “C:\OSGeo4W\apps\Python39\lib\http\client.py”, line 948, in send
self.connect()
File “C:\OSGeo4W\apps\Python39\lib\http\client.py”, line 1422, in connect
self.sock = self._context.wrap_socket(self.sock,
File “C:\OSGeo4W\apps\Python39\lib\ssl.py”, line 500, in wrap_socket
return self.sslsocket_class._create(
File “C:\OSGeo4W\apps\Python39\lib\ssl.py”, line 1040, in _create
self.do_handshake()
File “C:\OSGeo4W\apps\Python39\lib\ssl.py”, line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: A failure in the SSL library occurred (_ssl.c:1129)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “C:\Users/Elitebook/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Cxf_in\catdialog.py”, line 329, in connectgeodb
with contextlib.closing(urllib.request.urlopen(req)) as x:
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 214, in urlopen
return opener.open(url, data, timeout)
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 517, in open
response = self._open(req, data)
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 534, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 494, in _call_chain
result = func(*args)
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 1389, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File “C:\OSGeo4W\apps\Python39\lib\urllib\request.py”, line 1349, in do_open
raise URLError(err)
urllib.error.URLError:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “C:\Users/…/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Cxf_in\catdialog.py”, line 334, in connectgeodb
except urllib.URLError as err:
AttributeError: module ‘urllib’ has no attribute ‘URLError’

Modificando il codice del Plugin con except urlib.error.URLError as err, il print di err mi restituisce questo:

<urlopen error A failure in the SSL library occurred (_ssl.c:1129)>

E si generare quindi un secondo errore python relativo a una variabile che viene utilizzata nella riga successiva senza essere stata definita prima. La variabile html a cui fa riferimento l’errore infatti viene definita nel try ma entrando nell’except non viene appunto definita

2021-12-27T16:31:00 WARNING Traceback (most recent call last):
File “C:\Users/…/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Cxf_in\catdialog.py”, line 339, in connectgeodb
user = html.decode(“utf-8”).split(“|”)
UnboundLocalError: local variable ‘html’ referenced before assignment

Ciao

Roberta

Il giorno lun 27 dic 2021 alle ore 15:47 Andrea Giudiceandrea <andreaerdna@libero.it> ha scritto:

Ciao Roberta,
grazie per l’aggiornamento.

Potresti specificare quale errore, esattamente, riscontri?

A presto.

Andrea

Roberta Fagandini Mon, 27 Dec 2021 04:01:00 -0800

Buongiorno a tutti,
dopo ulteriori verifiche, ho notato che l'errore di login al DB per la
georeferenziazione si presenta solo su QGIS (3.16.14 e 3.22.1) installato
con OSGeo4W v2 ovvero il repository con le "nuove" dipendenze (in
particolare Python 3.9). Utilizzando invece la stessa versione LTR di QGIS
(3.16.14) ma installata con la "vecchia" OSGeo4W (Python 3.7) l'errore
python alla connessione non si verifica.

QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Arch. Roberta Fagandini, PhD

GIS and Remote Sensing Technician

Gter srl (Unige spin-off)

Via Jacopo Ruffini 9/1A - 16128 Genova

P.IVA/CF 01998770992

ph: 010-0899150

E-mail: roberta.fagandini@gter.it

skype: roberta.fagandini

www.gter.it

Gter social

www.twitter.com/Gteronline - www.facebook.com/Gteronline -

www.linkedin.com/company/gter-srl-innovazione-in-geomatica-gnss-e-gis

Roberta Fagandini Mon, 27 Dec 2021 04:01:00 -0800

Utilizzando invece la stessa versione LTR di QGIS
(3.16.14) ma installata con la "vecchia" OSGeo4W (Python 3.7) l'errore
python alla connessione non si verifica.

Strano… ho provato anche io con le stesse versioni di QGIS 3.16 installate tramite OSGeo4W v1 e v2 e io ottengo un errore di connessione ssl anche con QGIS 3.16 in OSGeo4W v1:

<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for ‘www.prgcloud.com’. (_ssl.c:1045)>

Infatti il certificato del server è valido per “prgcloud.com” e non per “www.prgcloud.com” e correggendo la stringa dell’URL utilizzata da

req = ‘https://www.prgcloud.com/auth/usercheck.php?username=’ + self.ui.user.text() + ‘&password=’ + self.ui.password.text()

a

req = ‘https://prgcloud.com/auth/usercheck.php?username=’ + self.ui.user.text() + ‘&password=’ + self.ui.password.text()

la connessione avviene senza problemi.

Questa modifica però non da risultati positivi in QGIS 3.16 da OSGeo4W v2.

L’unica modifica funzionante sia in QGIS 3.16 e 3.22 da OSGeo4W v2 che in QGIS 3.16 da OSGeo4W v1 è quella di disabilitare la verifica dei certificati.

Si implementa facilmente aggiungendo all’inizio del file catdialog.py, dove ci sono i vari “import” di librerie (per esempio dopo “import urllib”), la riga:

import ssl

e poi sostituendo ogni occorrenza (dovrebbero essere 4) di:

contextlib.closing(urllib.request.urlopen(req))

con:

contextlib.closing(urllib.request.urlopen(req, context=ssl._create_unverified_context()))

La stessa cosa va fatta con il file trasfcoord.py.

A presto.

Andrea