SPW-DIG / metawal-core-geonetwork

Metawal - Catalogue pour l'information géographique de Wallonie
http://metawal.wallonie.be
GNU General Public License v2.0
3 stars 1 forks source link

CSW / Requête POST ne fonctionne plus par le proxy #691

Open vbombaerts opened 2 years ago

vbombaerts commented 2 years ago

Describe the bug Depuis la mise en prod corrective de la faille Log4j (20/12), on observe des erreurs au moissonnage de la prod par la valid. La cause est que le proxy qui redirige les requêtes CSW de type "geoservices.wallonie.be/metawal" vers les adresses "metawal.wallonie.be" bloque les requêtes en POST.

Actions correctives au niveau du proxy Pq les requêtes sont-elles interceptées ? Les laisser passer. Investigation en cours avec le DTIC

Actions de mitigation au niveau des CSW

  1. S'assurer d'avoir une fiche de service CSW par service CSW effectivement exploité (srv, inspire, geoportailWalValid...) - OK
  2. Dans les fiches, indiquer comme adresses de connexion les adresses metawal.wallonie.be et pas les adresses geoservices.wallonie.be/metawal - OK
  3. Dans l'admin, s'assurer que les identifiants des fiches sont bien associées aux CSW respectif - OK

Autre Le bug pourrait interférer avec le moissonnage fait par le portail INSPIRE selon la méthode qu'ils utilisent pour récupérer les fiches

fxprunayre commented 2 years ago

Test

curl 'https://geoservices.wallonie.be/metawal/csw-inspire' -L \
  -H 'Content-type: application/xml' \
  --data-raw $'<?xml version="1.0"?>\n<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"\n                xmlns:gmd="http://www.isotc211.org/2005/gmd"\n                service="CSW" version="2.0.2"\n                resultType="results"\n                outputSchema="http://standards.iso.org/iso/19115/-3/mdb/2.0">\n  <csw:Query typeNames="gmd:MD_Metadata">\n    <csw:ElementSetName>full</csw:ElementSetName>\n  </csw:Query>\n</csw:GetRecords>'

retourne

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <info>No 'request' parameter found</info>
</response>

Cette réponse correspond à ce type d'appel https://metawal.wallonie.be/geonetwork/inspire/eng/csw (ie. sans paramètre)

alors que

curl 'https://metawal.wallonie.be/geonetwork/srv/eng/csw' -L \
  -H 'Content-type: application/xml' \
  --data-raw $'<?xml version="1.0"?>\n<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"\n                xmlns:gmd="http://www.isotc211.org/2005/gmd"\n                service="CSW" version="2.0.2"\n                resultType="results"\n                outputSchema="http://standards.iso.org/iso/19115/-3/mdb/2.0">\n  <csw:Query typeNames="gmd:MD_Metadata">\n    <csw:ElementSetName>full</csw:ElementSetName>\n  </csw:Query>\n</csw:GetRecords>'

est ok

fxprunayre commented 2 years ago
curl 'http://metawal.wallonie.be/geonetwork/srv/eng/csw' -L \
  -H 'Content-type: application/xml' \
  --data-raw $'<?xml version="1.0"?>\n<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"\n                xmlns:gmd="http://www.isotc211.org/2005/gmd"\n                service="CSW" version="2.0.2"\n                resultType="results"\n                outputSchema="http://standards.iso.org/iso/19115/-3/mdb/2.0">\n  <csw:Query typeNames="gmd:MD_Metadata">\n    <csw:ElementSetName>full</csw:ElementSetName>\n  </csw:Query>\n</csw:GetRecords>'

ne fonctionne pas non plus. Donc le problème serait plutôt dans le proxy http > https ?

vbombaerts commented 2 years ago

Copie de l'erreur lors du moissonnage. Elle apparaît pour la première fois le 20/12 à 21:00. La mise à jour de Metawal a été poussée en prod le 20/12 vers 10:15. L'erreur de proxy est peut-être antérieure et aurait été mise en évidence par la mise à jour.

2021-12-20T21:00:00,090+0100 INFO  [Prod_http] - Starting harvesting of Prod http
2021-12-20T21:00:00,278+0100 INFO  [Prod_http] - Started harvesting from node : Prod http (CswHarvester)
2021-12-20T21:00:01,065+0100 ERROR [Prod_http] - Unknown error trying to harvest
2021-12-20T21:00:01,066+0100 ERROR [Prod_http] - Missing 'SearchResults'
2021-12-20T21:00:01,066+0100 ERROR [Prod_http] - Missing 'SearchResults'
OperationAbortedEx : Missing 'SearchResults'
    at org.fao.geonet.kernel.harvest.harvester.csw.Harvester.searchAndAlign(Harvester.java:270)
    at org.fao.geonet.kernel.harvest.harvester.csw.Harvester.harvest(Harvester.java:116)
    at org.fao.geonet.kernel.harvest.harvester.csw.CswHarvester.doHarvest(CswHarvester.java:95)
    at org.fao.geonet.kernel.harvest.harvester.AbstractHarvester$HarvestWithIndexProcessor.process(AbstractHarvester.java:605)
    at org.fao.geonet.kernel.harvest.harvester.AbstractHarvester.harvest(AbstractHarvester.java:676)
    at org.fao.geonet.kernel.harvest.harvester.HarvesterJob.execute(HarvesterJob.java:69)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
2021-12-20T21:00:01,075+0100 INFO  [Prod_http] - Total records processed in all searches :0
2021-12-20T21:00:01,075+0100 WARN  [Prod_http] - Due to previous errors the align process has not been called
2021-12-20T21:00:01,075+0100 INFO  [Prod_http] - Ended harvesting from node : Prod http (CswHarvester)
vbombaerts commented 2 years ago

Un test sur la redéfinition des règles du proxy donne les résultats suivants :

Tests (hors SPW) via la requête de type:

curl 'https://geoservices.wallonie.be/geonetwork/inspire/fre/csw' -L -H 'Content-type: application/xml' --data-raw $'<?xml version="1.0"?>\n<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"\n xmlns:gmd="http://www.isotc211.org/2005/gmd"\n service="CSW" version="2.0.2"\n resultType="results"\n outputSchema="http://standards.iso.org/iso/19115/-3/mdb/2.0">\n <csw:Query typeNames="gmd:MD_Metadata">\n <csw:ElementSetName>full</csw:ElementSetName>\n </csw:Query>\n</csw:GetRecords>' sur les urls suivantes :

http://geoservices.wallonie.be/geonetwork/inspire/fre/csw OK https://geoservices.wallonie.be/geonetwork/inspire/fre/csw OK

http://metawal.wallonie.be/geonetwork/inspire/fre/csw NOK ( No 'request' parameter found) https://metawal.wallonie.be/geonetwork/inspire/fre/csw OK

Une demande de changement doit être encodée par Didier pour pérenniser les paramètres.

vbombaerts commented 2 years ago

Les paramètres ont été pérennisés mais une des requêtes est toujours problématique

fxprunayre commented 2 years ago

En effet:

curl 'http://metawal.wallonie.be/geonetwork/srv/eng/csw' -L   -H 'Content-type: application/xml'   --data-raw $'<?xml version="1.0"?>\n<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"\n                xmlns:gmd="http://www.isotc211.org/2005/gmd"\n                service="CSW" version="2.0.2"\n                resultType="results"\n                outputSchema="http://standards.iso.org/iso/19115/-3/mdb/2.0">\n  <csw:Query typeNames="gmd:MD_Metadata">\n    <csw:ElementSetName>full</csw:ElementSetName>\n  </csw:Query>\n</csw:GetRecords>'
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <info>No 'request' parameter found</info>
</response>
vbombaerts commented 2 years ago

@davinciagf tu peux y regarder STP ?

vbombaerts commented 1 year ago

Le F5 a été installé en valid en remplacement de Nginx. @fxprunayre tu peux tester maintenant ou m'expliquer comment faire STP ?

J'ai copié/collé curl 'https://geoservices.wallonie.be/geonetwork/inspire/fre/csw' -L -H 'Content-type: application/xml' --data-raw $'<?xml version="1.0"?>\n<csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"\n xmlns:gmd="http://www.isotc211.org/2005/gmd"\n service="CSW" version="2.0.2"\n resultType="results"\n outputSchema="http://standards.iso.org/iso/19115/-3/mdb/2.0">\n <csw:Query typeNames="gmd:MD_Metadata">\n <csw:ElementSetName>full</csw:ElementSetName>\n </csw:Query>\n</csw:GetRecords>' dans l'invite de commande Windows mais j'ai juste reçu "Le fichier spécifié est introuvable".

fxprunayre commented 1 year ago

Ici, ça fonctionne. C'est curl le fichier introuvable ? Que retourne curl ?

> curl
curl: try 'curl --help' or 'curl --manual' for more information
vbombaerts commented 1 year ago

image

image

vbombaerts commented 1 year ago

Remplacement de Nginx par F5 Moissonnage de la prod depuis la valid

http://geoservices.wallonie.be/geonetwork/inspire/fre/csw OK https://geoservices.wallonie.be/geonetwork/inspire/fre/csw OK

http://metawal.wallonie.be/geonetwork/inspire/fre/csw OK https://metawal.wallonie.be/geonetwork/inspire/fre/csw OK

Moissonnage de la valid depuis la test

https://metawal4.valid.wallonie.be/geonetwork/inspire/fre/csw image

vbombaerts commented 1 year ago

837