Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2.7.1] Erreur de synchronisation des taxons #274

Closed
geoek opened this issue Dec 4, 2024 · 19 comments
Closed

[2.7.1] Erreur de synchronisation des taxons #274

geoek opened this issue Dec 4, 2024 · 19 comments
Labels
bug Something isn't working duplicate This issue or pull request already exists

Comments

@geoek
Copy link

geoek commented Dec 4, 2024

Version de l'application

  • geonature 2.14.2
  • taxhub : 1.14.2
  • userhub : 2.4.3
  • occtax-mobile : 2.7.1

###Terminal
Pixel 6a avec Android 14 et d'autres téléphones sous android 10 -> 14

Bonjour à tous·tes,
il faudrait réouvrir ce ticket : #238

je suis passé sur cette configuration (voir ci dessus) et j'ai toujours ce meme comportement :

  • la configuration est accessible ici : https://geonature.biodiv-occitanie.fr/api/gn_commons/t_mobile_apps
  • lors d'une synchronisation, ça bloque sur la synchro des taxons et j'ai ce message dans les logs :
    [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.biodiv-occitanie.fr/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1 INFO: [fr.geonature.datasync.api.ClientKt] <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to taxhub.biodiv-occitanie.fr not permitted by network security policy

J'ai l'impression qu'il y a un problème sur la route TaxRef. Il avait été évoqué une erreur de HTTPS mais tout me parrait bien configurer et ça fonctionnait très bien avant. (l'erreur était apparu entre la RC2 et la RC3 mais je n'avais pas des versions de GN et TH compatible à l'époque. Aujourd'hui, tout devrait etre compatible).

¨Pour info, les logs complets :

16:38:05.407 INFO: [fr.geonature.occtax.MainApplication] starting fr.geonature.occtax2 (version 2.7.1)... 16:38:05.407 INFO: [fr.geonature.occtax.MainApplication] logs directory: '/storage/emulated/0/Android/data/fr.geonature.occtax2/logs' 16:38:05.407 INFO: [fr.geonature.occtax.MainApplication] internal storage: 'MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)' 16:38:05.409 INFO: [fr.geonature.occtax.MainApplication] external storage: 'null' 16:38:05.455 INFO: [fr.geonature.commons.data.DatabaseModule] loading local database '/storage/emulated/0/Android/data/fr.geonature.occtax2/databases/data.db'... 16:38:05.456 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] loading app configuration... 16:38:05.457 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'... 16:38:05.469 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.biodiv-occitanie.fr', TaxHub: 'https://taxhub.biodiv-occitanie.fr')... 16:38:05.479 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] updating app configuration from 'https://geonature.biodiv-occitanie.fr'... 16:38:05.546 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.biodiv-occitanie.fr/api/gn_commons/t_mobile_apps 16:38:05.725 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.biodiv-occitanie.fr/api/gn_commons/t_mobile_apps (178ms, 2507-byte body) 16:38:05.730 INFO: [fr.geonature.datasync.packageinfo.PackageInfoRepositoryImpl] updating settings for 'fr.geonature.occtax2'... 16:38:05.733 INFO: [fr.geonature.datasync.packageinfo.io.AppSettingsJsonWriter] updating app settings '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json' 16:38:05.734 INFO: [fr.geonature.datasync.settings.DataSyncSettingsFileDataSourceImpl] loading data sync settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'... 16:38:05.735 INFO: [fr.geonature.datasync.api.GeoNatureAPIClientImpl] set server base URLs (GeoNature: 'https://geonature.biodiv-occitanie.fr', TaxHub: 'https://taxhub.biodiv-occitanie.fr')... 16:38:05.737 INFO: [fr.geonature.datasync.features.settings.usecase.UpdateSettingsFromRemoteUseCase] app configuration successfully updated from 'https://geonature.biodiv-occitanie.fr' 16:38:05.737 INFO: [fr.geonature.occtax.ui.home.HomeActivity] reloading settings after update... 16:38:05.738 INFO: [fr.geonature.occtax.features.settings.data.AppSettingsFileLocalDataSourceImpl] loading settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.json'... 16:38:05.739 INFO: [fr.geonature.occtax.features.settings.io.AppSettingsJsonReader] input date settings loaded ('start': datetime, 'end': null) 16:38:05.742 INFO: [fr.geonature.occtax.features.settings.data.AppSettingsFileLocalDataSourceImpl] loading additional settings from '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.local.json'... 16:38:05.743 INFO: [fr.geonature.occtax.features.settings.repository.AppSettingsRepositoryImpl] no app settings found locally at '/storage/emulated/0/Android/data/fr.geonature.occtax2/settings_occtax.local.json' 16:38:05.744 INFO: [fr.geonature.occtax.features.settings.repository.AppSettingsRepositoryImpl] default app settings successfully loaded 16:38:05.748 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] starting local data synchronization... 16:38:05.802 DEBUG: [fr.geonature.maps.ui.MapFragment] configure User-Agent for osmdroid: 'fr.geonature.maps/0.8.4' 16:38:05.806 INFO: [fr.geonature.maps.layer.presentation.LayerSettingsViewModel] preparing all layers: 'OpenStreetMap': [https://a.tile.openstreetmap.org, https://b.tile.openstreetmap.org, https://c.tile.openstreetmap.org] (active: true) 'OpenTopoMap': [https://a.tile.opentopomap.org, https://b.tile.opentopomap.org, https://c.tile.opentopomap.org] (active: true) 'IGN plan v2': [https://wxs.ign.fr/essentiels/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/png&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2] (active: true) 'IGN ortho': [https://wxs.ign.fr/ortho/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS] (active: true) 'IGN cadastre': [https://wxs.ign.fr/parcellaire/geoportail/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/png&LAYER=CADASTRALPARCELS.PARCELS] (active: true), using online layers: true... 16:38:05.903 INFO: [fr.geonature.datasync.sync.DataSyncViewModel] configure data sync periodic worker (repeat interval: 7d, with additional data: true)... 16:38:05.993 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] starting local data synchronization from 'https://geonature.biodiv-occitanie.fr' (with additional data: true)... 16:38:05.994 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize dataset... 16:38:05.996 INFO: [fr.geonature.datasync.api.ClientKt] --> POST https://geonature.biodiv-occitanie.fr/api/meta/datasets (19-byte body) 16:38:28.870 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.biodiv-occitanie.fr/api/meta/datasets (22873ms, 5759867-byte body) 16:38:30.828 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] dataset to update: 1528 16:38:30.838 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize users... 16:38:30.839 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.biodiv-occitanie.fr/api/users/menu/1 16:38:30.896 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.biodiv-occitanie.fr/api/users/menu/1 (56ms, 173908-byte body) 16:38:30.972 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] users to update: 1511 16:38:30.979 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize taxonomy ranks... 16:38:30.981 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.biodiv-occitanie.fr/api/taxref/regnewithgroupe2 16:38:31.821 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://taxhub.biodiv-occitanie.fr/api/taxref/regnewithgroupe2 (839ms, 776-byte body) 16:38:31.844 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] taxonomy ranks to update: 48 16:38:31.847 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature types... 16:38:31.849 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.biodiv-occitanie.fr/api/nomenclatures/nomenclatures/taxonomy 16:38:31.973 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.biodiv-occitanie.fr/api/nomenclatures/nomenclatures/taxonomy (123ms, 317765-byte body) 16:38:32.174 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature types to update: 78 16:38:32.186 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature to update: 790 16:38:32.186 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] synchronize nomenclature default values... 16:38:32.188 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://geonature.biodiv-occitanie.fr/api/occtax/defaultNomenclatures 16:38:32.220 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://geonature.biodiv-occitanie.fr/api/occtax/defaultNomenclatures (31ms, 282-byte body) 16:38:32.225 INFO: [fr.geonature.datasync.sync.usecase.DataSyncUseCase] nomenclature default values to update: 17 16:38:32.275 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.biodiv-occitanie.fr/api/taxref/version 16:38:32.305 INFO: [fr.geonature.datasync.api.ClientKt] <-- 200 OK https://taxhub.biodiv-occitanie.fr/api/taxref/version (28ms, 90-byte body) 16:38:32.325 INFO: [fr.geonature.datasync.sync.repository.SynchronizeTaxaRepositoryImpl] taxa last synchronization date from remote: 2024-01-23T16:29:32Z 16:38:32.326 INFO: [fr.geonature.datasync.sync.repository.SynchronizeTaxaRepositoryImpl] synchronize taxa... 16:38:32.330 INFO: [fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.biodiv-occitanie.fr/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1 16:38:32.366 INFO: [fr.geonature.datasync.api.ClientKt] <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to taxhub.biodiv-occitanie.fr not permitted by network security policy 16:38:32.376 WARN: [fr.geonature.datasync.sync.repository.SynchronizeTaxaRepositoryImpl] taxa synchronization finished with errors 16:38:32.886 WARN: [fr.geonature.datasync.sync.worker.DataSyncWorker] Synchronisation des taxons terminée avec des erreurs 16:38:32.888 INFO: [fr.geonature.datasync.sync.worker.DataSyncWorker] local data synchronization finished with failed tasks in 26.981s

Merci d'avance.

@geoek geoek added the bug Something isn't working label Dec 4, 2024
@geoek geoek changed the title Erreur de synchronisation [2.7.1] Erreur de synchronisation des taxons Dec 4, 2024
@camillemonchicourt
Copy link
Member

Je pense que c'est plutôt lié au ticket #261 et donc un soucis de configuration Apache de TaxHub mais j'ai pas tout compris aux soucis discutés dans ce ticket car je comprends pas grand chose à Apache...

@camillemonchicourt
Copy link
Member

Oui c'est bien ça, quand on tape sur l'URL qui est indiquée en erreur dans les logs : https://taxhub.biodiv-occitanie.fr/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1
Cela redirige vers https://taxhub.biodiv-occitanie.fr/taxhub/api/taxref/?orderby=cd_nom&fields=listes&limit=10000&page=1
Et donc en effet cela rajoute un "/taxhub/" dans l'URL donc y a bien une redirection Apache qui doit poser soucis au niveau de la conf Apache de TaxHub.

@JeromeMaruejouls
Copy link

Ok merci @camillemonchicourt . Je vais regarder ça d'un peu plus prés !

@sgrimault sgrimault added the duplicate This issue or pull request already exists label Dec 5, 2024
@sgrimault
Copy link
Collaborator

Bonjour @geoek,
C'est un doublon de #261 (encore ouvert).
Pour information, l'erreur vient bien d'un souci de configuration au niveau du frontal Web (Apache, redirection HTTPS -> HTTP) et en version "release", l'application refuse toute communication HTTP non chiffrée.

@camillemonchicourt
Copy link
Member

Salut @sgrimault, en regardant rapidement, j'ai bien l'impression que c'est un soucis de configuration Apache de TaxHub, mais cette fois-ci pas de redirection HTTPS > HTTP, mais d'ajout de "/taxhub/" dans l'URL de l'API comme vu ci-dessus lors de mes tests.
Mais j'ai peut-être raté quelque chose.

@sgrimault
Copy link
Collaborator

Pourtant l'erreur est assez explicite :

[fr.geonature.datasync.api.ClientKt] --> GET https://taxhub.biodiv-occitanie.fr/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1 INFO: [fr.geonature.datasync.api.ClientKt] <-- HTTP FAILED: java.net.UnknownServiceException: CLEARTEXT communication to taxhub.biodiv-occitanie.fr not permitted by network security policy 

Il se retrouve avec un appel HTTP en clair...

@camillemonchicourt
Copy link
Member

OK donc en effet, vraiment comme l'autre ticket que j'ai pas tout compris, mais qui indiquait le même soucis et qui se trouve au niveau de la conf Apache de TaxHub, pas au niveau d'Occtax-mobile.

@JeromeMaruejouls
Copy link

JeromeMaruejouls commented Dec 9, 2024

Alors j'ai commencé à regarder un peu. Je met les informations là, mais dites moi s'il vaut mieux les placer dans un autre sujet car le problème me semble entre occtax-mobile et taxhub, voire geonature.

L'adresse api qui pose problème dans les log est :
https://taxhub.biodiv-occitanie.fr/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1

Si on y accède, le navigateur nous redirige vers : https://taxhub.biodiv-occitanie.fr/taxhub/api/taxref/?orderby=cd_nom&fields=listes&limit=10000&page=1 => Il rajoute donc un /taxhub et ca ne fonctionne pas.

Par contre, si on rajoute un '/' avant le '?', l'api fonctionne et renvoie bien les données.
Je ne veux pas remettre en doute le message d'erreur (passage en HTTP) mais je ne comprends pas trop le rapport et le fonctionnement. Est ce normal que Occtax-mobile construise cette url sans le '/' devant le '?' ?

Mais je ne suis quand même pas du tout sûr de ma configuration Apache (qui fonctionne apparemment pour tout, sauf pour cet appel d'API).
Premier point, j'accède à mes applications à la racine du site :

Chose étrange, la documentation de taxhub précise pour l'update 1.13 : Si TaxHub est à la racine de votre serveur web http://taxhub.mondomain.fr, le paramètre APPLICATION_ROOT doit être égal à "/" et non ""
Mais dans ma conf (/taxhub/appatax/config.py), j'ai APPLICATION_ROOT = '/taxhub' et si je change en '/', je n'ai plus accès à taxhub et l'api ne fonctionne pas.
(et je fais donc un rapprochement avec le /taxhub qui se retrouve rajouter à l'url lors de l'appel de l'API taxref (voir ci dessus).

Je dois donc avoir des problèmes de configuration quelque part... Même si, tout fonctionne sans messages particuliers dans les logs.

Voici la conf apache de geonature et taxhub (dans les dernières versions de geonature, je n'ai pas trouvé d'exemples de conf apache lorsque l'on est à la racine du serveur et non en sous domaine). J'ai laissé les lignes commentées, qui avaient dû servir de tests.

geonature.conf :
'

Configuration GeoNature

<VirtualHost *:80>
ServerName geonature.biodiv-occitanie.fr

RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

<VirtualHost *:443>
ServerName geonature.biodiv-occitanie.fr
ServerAdmin xxx@natureo.org
#Alias / /home/geonatureadmin/geonature/frontend/dist
DocumentRoot "/home/geonatureadmin/geonature/frontend/dist"
<Directory /home/geonatureadmin/geonature/frontend/dist>
Require all granted

<Location /api>
ProxyPass http://127.0.0.1:8000/api
ProxyPassReverse http://127.0.0.1:8000/api

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/biodiv-occitanie.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/biodiv-occitanie.fr/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire

'

taxhub.conf :

'

Configuration TaxHub

<VirtualHost *:80>
ServerName taxhub.biodiv-occitanie.fr
ServerAdmin xxx@natureo.org

RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

<VirtualHost *:443>
ServerName taxhub.biodiv-occitanie.fr
ServerAdmin xxx@natureo.org
#RewriteEngine on
#RewriteRule "taxhub$" "taxhub/" [R]

ProxyPass http://127.0.0.1:5000/taxhub/
ProxyPassReverse http://127.0.0.1:5000/taxhub/

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/biodiv-occitanie.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/biodiv-occitanie.fr/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire

'

@JeromeMaruejouls
Copy link

C'est bon, problème apparemment résolu de mon coté :

  • le problème de APPLICATION_ROOT venait d'un problème de conf apache Taxhub : j'avais un /taxhub à la fin des url dans Location.
  • le passage de requetes en HTTP a été résolu en rajoutant des directives RequestHeader dans la conf apache de Taxhub (voir Erreur accès à TaxHub #261)

Ca m'a permis de me plonger un peu plus dans les configurations apache et de nettoyer en partie ma conf (même si ca reste toujours très complexe cette partie...)

On peut clore ce ticket, merci !

@geoek
Copy link
Author

geoek commented Dec 10, 2024

voir #261

@geoek geoek closed this as not planned Won't fix, can't repro, duplicate, stale Dec 10, 2024
@camillemonchicourt
Copy link
Member

Pourrais-tu partager tes modifications de la configuration TaxHub ?
Car là j'ai vraiment du mal à suivre et comprendre ce sujet.
Et comme évoqué dans l'autre ticket, cela veut dire qu'il faut modifier la config Apache par défaut au niveau de TaxHub ? Ou indiquer quelque chose dans la doc de TaxHub ?

@DonovanMaillard
Copy link
Collaborator

DonovanMaillard commented Dec 11, 2024

De mon coté, dans la conf taxhub-le-ssl.conf, j'ai cet ajout dans la configuration qui fonctionne bien :

# Ajoutez les en-têtes nécessaires pour HTTPS
        RequestHeader set X-Forwarded-Proto "https"
        RequestHeader set X-Forwarded-Ssl on
# En test (Proposition Gil)
                # Les deux lignes suivantes génèrent une erreur coté geonature pour le chargement de ressources externes , ne pas les ajouter
                #Header set Access-Control-Allow-Origin "https://taxons.flavia-ape.fr"
                #Header set X-Frame-Options: "SAMEORIGIN"
                Header set X-XSS-Protection "1; mode=block"
                Header set X-Content-Type-Options: "nosniff"
                Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Dec 11, 2024

OK merci pour ces retours.
Si quelqu'un peut regarder si c'est OK ce qu'on propose par défaut ou indique dans TaxHub, ça serait top, car on sature là et je maitrise pas le sujet.

Par contre, dans les différents échanges, je vois un sujet qui est plus pour @sgrimault :

L'adresse api qui pose problème dans les log est :
https://taxhub.biodiv-occitanie.fr/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1

Si on y accède, le navigateur nous redirige vers : https://taxhub.biodiv-occitanie.fr/taxhub/api/taxref/?orderby=cd_nom&fields=listes&limit=10000&page=1 => Il rajoute donc un /taxhub et ca ne fonctionne pas.

Par contre, si on rajoute un '/' avant le '?', l'api fonctionne et renvoie bien les données.
Je ne veux pas remettre en doute le message d'erreur (passage en HTTP) mais je ne comprends pas trop le rapport et le fonctionnement. Est ce normal que Occtax-mobile construise cette url sans le '/' devant le '?' ?

Dans le code d'Occtax-mobile, dans les appels à la route /taxref..., il manque un espace après "taxref" (taxref?orderby=cd_nom) ?

Ça c'est pas normal, à modifier dans le code d'Occtax-mobile, il me semble.

@JeromeMaruejouls
Copy link

Alors voici ce que je retiens de ces problèmes et des corrections à faire :

  • pour occtax mobile : de mon point de vue, sur l'appel de l'API https://xxx/api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1 , il manque un '/' avant le '?'. Normalement les navigateurs corrigent automatiquement, mais ce n'est pas propre, et c'est une source de problèmes potentiels.

  • pour la configuration Apache : Alors c'est compliqué pour moi parceque je suis avec des url à la racine du serveur du type geonature.xxx.fr taxhub.xxx.fr etc et j'ai l'impression que les configuration par défault pour les dernières versions sont avec des applications installés sur des sous domaines (xxx.fr/geonature). Alors vu que ca marchait de mon coté (hormis les redirections en HTTP), je n'ai pas testé à fond (serveur de prod, donc délicat) et voici mes configuration :

TAXHUB :

# Configuration TaxHub

<VirtualHost *:80>
  ServerName taxhub.biodiv-occitanie.fr
  ServerAdmin xxx@natureo.org

  RewriteEngine on
  RewriteCond %{HTTPS} !on
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
  ServerName taxhub.biodiv-occitanie.fr
  ServerAdmin xxx@natureo.org

  <Location />
    ProxyPass  http://127.0.0.1:5000/ 
    ProxyPassReverse  http://127.0.0.1:5000/
  </Location>

  RequestHeader set X-Forwarded-Proto "https"
  RequestHeader set X-Forwarded-Ssl on

  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateFile /etc/letsencrypt/live/biodiv-occitanie.fr/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/biodiv-occitanie.fr/privkey.pem
</VirtualHost>
#FIN Configuration TaxHub

=> On peut voir que j'ai 2 virtual host, un pour http et un pour https. Et le premier ne fait que rediriger les requetes http vers des requetes https. J'ai ici rajouté les 2 RequestHeader qui ont permis à la synchro occtax mobile de fonctionner (magique pour moi, j'ai suivi le post de Donovan)

GEONATURE :

# Configuration GeoNature

<VirtualHost *:80>
  ServerName geonature.biodiv-occitanie.fr

  RewriteEngine on
  RewriteCond %{HTTPS} !on
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>

<VirtualHost *:443>
  ServerName geonature.biodiv-occitanie.fr
  ServerAdmin xxx@natureo.org
  DocumentRoot "/home/geonatureadmin/geonature/frontend/dist"
  <Directory /home/geonatureadmin/geonature/frontend/dist>
    Require all granted
  </Directory>
  <Location /api>
    ProxyPass http://127.0.0.1:8000/api
    ProxyPassReverse  http://127.0.0.1:8000/api
  </Location>

  RequestHeader set X-Forwarded-Proto "https"
  RequestHeader set X-Forwarded-Ssl on

  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateFile /etc/letsencrypt/live/biodiv-occitanie.fr/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/biodiv-occitanie.fr/privkey.pem

</VirtualHost>

=> Ici aussi deux virtual host, comme pour taxhub. A noter que l'ajout des RequestHeader dans ce fichier seulement n'était pas suffisant pour moi. Il a fallu que je les rajoute également dans le fichier de TaxHub

=> A noter également que je n'ai pas l'impression d'avoir de configuration activée pour geonature ou taxhub (comme il est précisé dans la documentation), mais tout semble fonctionner quand même.

Bref, je ne vous aide peut etre pas vraiment. Ma configuration me semble bien simple mais fonctionne. Je vais essayer de prendre un deuxième serveur pour installer avec la meme configuration (sans sous domaine) et faire des tests sans risquer de tout casser !

@DonovanMaillard
Copy link
Collaborator

pareil pour moi je suis à la racine sur taxons.flavia-ape.fr ;)

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Dec 11, 2024

Voici la conf Apache de base de TaxHub que l'on fournit : https://github.com/PnX-SI/TaxHub/blob/develop/taxhub_apache.conf
Et que l'on copie automatiquement dans /etc/apache2/conf-available/taxhub.conf avec le script install_app.sh : https://github.com/PnX-SI/TaxHub/blob/develop/install_app.sh#L53

Mais bon, tu me diras, tout cela va perdre son intérêt car avec la version 2.15.0 de GeoNature sortie hier, TaxHub 2.0.0 est intégré à GeoNature quand on utilise celui-ci. Et donc son API aussi, comme expliqué dans PnX-SI/GeoNature#3280. Donc TaxHub n'a plus de configuration Apache. Déjà répercuté sur le serveur de DEMO : https://demo.geonature.fr/geonature/api/gn_commons/t_mobile_apps
Et donc cela n'est plus utile que si on utilise TaxHub tout seul sans GeoNature, ce qui n'est pas le cas quand on utilise Occtax-mobile...

On va d'ailleurs pouvoir doucement supprimer le paramètre taxhub_url d'Occtax-mobile d'ici quelques versions, quand tout le monde sera passé en GeoNature 2.15 ou plus.

Et donc tout cela se veut de plus en plus simple. :-)

@JeromeMaruejouls
Copy link

Alors c'est bien ce que j'avais vu mais ca ne correspond pas totalement à ma conf Apache qui doit dater d'anciennes versions.
Ce que je ne m'explique pas, c'est que cela à l'air de fonctionner en l'état sur le serveur de démo (qd il était en 2.14) alors que sur d'autres serveurs, il faut rajouter les directives RequestHeader.

Ce que je propose, comme l'a dit @DonovanMaillard : rajouter par sécurité, dans taxhub.conf les 2 directives RequestHeader après Location. (par contre, chez moi, il a fallut que je le fasse dans geonature.conf ET dans taxhub.com (voir mes fichiers dans le post précédent))
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Ssl on

@DonovanMaillard, est ce que toi tu as une configuration classique d'apache telle qu'elle s'installe officiellement (donc avec les configuration dans conf-available + un vhost dans sites-available qui appelle cette conf) ou est ce que comme moi, tu as tout dans ton fichier de configuration dans sites-available ? (pour geonature et pour taxhub ?)

Je me demande si les différences de configuration ne viendrait pas aussi de l'installation des certificats Let's Encrypt par certobot sur le serveur. Il me semble que l'on peut spécifier des options genre -apache pour lors de la création des certificats, il mette aussi les configurations à jour automatiquement.

Et sinon, comme le dit Camille, pour la 2.15, ça va bien simplifier d'avoir taxhub intégré dans geonature. À voir si le problème se reproduit lors de l'appel de l'API.

@sgrimault
Copy link
Collaborator

Bonjour,

De mon coté je vais voir et tester cette histoire de la présence ou non du '/' avant les query parameters. Pour moi les deux requêtes GET -> /api/taxref?orderby=cd_nom&fields=listes&limit=10000&page=1 et GET -> /api/taxref/?orderby=cd_nom&fields=listes&limit=10000&page=1 devraient avoir le même comportement et idéalement, on ne devrait pas laisser un '/' à la fin de l'URL...

@camillemonchicourt
Copy link
Member

Ah OK OK, je pensais que la pratique était d'avoir un /à la fin, avant les paramètres.
C'est ce que j'ai l'habitude de voir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working duplicate This issue or pull request already exists
Projects
None yet
Development

No branches or pull requests

5 participants