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

Le moissonnage avec authentification dans Metawal depuis un CSW virtuel ne fonctionne pas #611

Closed vbombaerts closed 3 years ago

vbombaerts commented 3 years ago

J'ai essayé de moissonner en CSW une fiche de prod vers valid et vers test depuis le point de moissonnage virtuel geoportailwalvalid http://metawal.wallonie.be/geonetwork/geoportailwalvalid/fre/csw

Ce point de moissonnage n'expose que des fiches publiées dans un groupe particulier (groupe URBI).

Le moissonnage, que ce soit en mode authentifié ou non, ne fonctionne pas.

J'ai fait plusieurs tests :

EDIT : Attention ! Il y a des problèmes avec l'index en prod ! J'ai essayé de faire une requête CSW sur le point qui expose le groupe URBI et je n'ai aucune fiche qui est remonté. image

vbombaerts commented 3 years ago

Il y a un problème avec l'identification dans le CSW ou un problème avec mon profil.

J'utilise l'adresse http://metawal.wallonie.be/geonetwork/srv/fre/csw pour effectuer des requêtes CSW directement dans le navigateur. La requête est toujours la même et je ne fais que changer le fait que je sois identifié ou pas dans Metawal (autre onglet du même navigateur) http://metawal.wallonie.be/geonetwork/srv/fre/csw?REQUEST=GetRecords&SERVICE=CSW&VERSION=2.0.2&OUTPUTSCHEMA=http://standards.iso.org/iso/19115/-3/mdb/2.0&CONSTRAINTLANGUAGE=CQL_TEXT&outputformat=application/xml&RESULTTYPE=results&TYPENAMES=csw:Record&STARTPOSITION=1&MAXRECORDS=10&ELEMENTSETNAME=full&SORTBY=identifier:A

Si je ne suis pas identifié dans Metawal : pas de problème - <csw:SearchResults numberOfRecordsMatched="969" numberOfRecordsReturned="10" elementSet="full" nextRecord="11">

Si je suis identifié avec mon profil d'admin dans Metawal : pas de problème - <csw:SearchResults numberOfRecordsMatched="1217" numberOfRecordsReturned="10" elementSet="full" nextRecord="11">

Si je suis identifié avec un profil d'utilisateur avec droits de lecture sur certains groupes (j'ai testé avec un utilisateur LDAP et un utilisateur "libre" --> même comportement) : erreur -

<ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2.0" xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd">
<ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.RuntimeException: java.util.MissingFormatArgumentException: Format specifier '%d'</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>

image

fxprunayre commented 3 years ago

Corrigé pour le moissonnage distant avec authentification. A déployer @davinciagf

fxprunayre commented 3 years ago

Si je suis identifié avec un profil d'utilisateur avec droits de lecture sur certains groupes (j'ai testé avec un utilisateur LDAP et un utilisateur "libre" --> même comportement) : erreur -

Corrigé également

davinciagf commented 3 years ago

Déployé ce matin

vbombaerts commented 3 years ago

Pas fonctionnel en valid.

  1. Créer un groupe : TEST
  2. Publier des fiches dans ce groupe
  3. Donner les droits de lecture à un utilisateur pour ce groupe : 34064
  4. Vérifier les droits par des query dans le catalogue : q(+groupPublished:Test) --> 34064 : 3 résultats / Anonyme : 2 résultats ==> OK
  5. Créer le point d'accès CSW spécifique geoportailwalvalid avec comme filtre +groupPublished:Test
  6. Test du point d'accès en s'identifiant dans Metawal avec différents profils puis requêtant le point d'accès http://metawal4.valid.wallonie.be/geonetwork/geoportailwalvalid/fre/csw?REQUEST=GetRecords&SERVICE=CSW&VERSION=2.0.2&OUTPUTSCHEMA=http://standards.iso.org/iso/19115/-3/mdb/2.0&CONSTRAINTLANGUAGE=CQL_TEXT&outputformat=application/xml&RESULTTYPE=results&TYPENAMES=csw:Record&STARTPOSITION=1&MAXRECORDS=10&ELEMENTSETNAME=full&SORTBY=identifier:A --> pour l'utilisateur anonyme : csw:SearchResults numberOfRecordsMatched="2" --> pour l'admin du catalogue : csw:SearchResults numberOfRecordsMatched="3" --> pour l'utilisateur 34064 : erreur
    <ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2.0" xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd">
    <ows:Exception exceptionCode="NoApplicableCode">
    <ows:ExceptionText>java.lang.RuntimeException: java.util.MissingFormatArgumentException: Format specifier '%d'</ows:ExceptionText>
    </ows:Exception>
    </ows:ExceptionReport>
fxprunayre commented 3 years ago

Quelle version est déployée en test & valid ?

https://metawal4.test.wallonie.be/geonetwork/srv/eng/admin.console#/dashboard/information Commit hash = 02f29697cf9a747eb9ecc2ef3bc0e84a8db45c27

J'aime pas bien ça car https://github.com/SPW-DIG/metawal-core-geonetwork/commit/02f29697cf9a747eb9ecc2ef3bc0e84a8db45c27 = NOT FOUND - donc on déploie des trucs qui n'existe pas ? @davinciagf

davinciagf commented 3 years ago

C'est celui du merge :

commit 02f29697cf9a747eb9ecc2ef3bc0e84a8db45c27 (HEAD -> metawal-4.0.x) Merge: 229a207bc1 9887a381c9 Author: agf arnaud.degroof@spacebel.be Date: Mon Jun 7 09:29:15 2021 +0200

Merge remote-tracking branch 'origin/metawal-4.0.x' into metawal-4.0.x

commit 9887a381c931c9d94438bf6f08a896f1bd10276a (origin/metawal-4.0.x) Author: Francois Prunayre fx.prunayre@gmail.com Date: Mon Jun 7 09:24:52 2021 +0200

Harvester / CSW / Fix remote auth.

commit 229a207bc116058f6a30f28859cae90557bd5859

fxprunayre commented 3 years ago

C'est celui du merge :

Si tu merges, faut le pousser sur github sinon y'a que toi qui l'a.

davinciagf commented 3 years ago

Il manque sans doute le dernier commit lié Screen Shot 2021-06-10 at 14 13 55

fxprunayre commented 3 years ago

Donc le merge a été fait avant le commit qui fix l'auth image

On build un WAR et on met à jour test et valid ?

davinciagf commented 3 years ago

Oui , je vais demander à Didier s'il peut mettre à jour la valid dès que c'est redéployé en test et ok en test. @vbombaerts ok pour toi?

vbombaerts commented 3 years ago

ok. Préviens-moi quand les correctifs ont été déployés en test pour que je les checke. (J'ai du temps demain PM entre 13.30 et 15.30)

davinciagf commented 3 years ago

ok

vbombaerts commented 3 years ago

Je n'ai eu le temps que de tester la requête CSW en mode authentifé et cette partie fonctionne. 👍

vbombaerts commented 3 years ago

Je dois avoir 2 mains gauches mais avec moi ça ne marche pas.

Moissonnage sur base d'un CSW en valid et d'un moissonneur en test.

Portail (non-authentifié) vs moissonnage (non-identifié) image image

Portail (identifié) vs moissonnage (identifié) image image

Portail (admin) vs moissonnage (admin) image image

Comprends pas...

vbombaerts commented 3 years ago

Je propose qu'on le passe sur la version suivante. De toute façon ça fait partie d'une demande plus large de réussir à récupérer automatiquement des fiches non-publiques de Metawal prod pour les exposer automatiquement en mode public sur Metawal valid (avec une transformation XSL derrière le moissonnage)

vbombaerts commented 3 years ago

En fait ça marche. Les fiches privées du groupe Geoportailwalvalid (en prod) sont moissonnées par la valid avec un utilisateur authentifié et sont publiées publiquement dans le Metawal de valid. C'est ce que je voulais.