assemblee-virtuelle / semapps

A toolbox to create semantic web applications
https://semapps.org
Apache License 2.0
88 stars 9 forks source link

Un GET sur un container LDP avec WebACL peut être très lent #868

Open srosset81 opened 3 years ago

srosset81 commented 3 years ago

La technique actuelle est de récupérer l'URI des ressources, puis de faire un GET sur chacune d'entre elle.

Mais il semble que la première requête SPARQL (pour récupérer l'URI des ressources) retourne aussi les ressources que l'utilisateur n'a pas le droit de voir. Du coup il peut y avoir un très grand nombre d'appel GET sur les ressources, alors qu'au final seules quelques unes seront retournées.

simonLouvet commented 2 years ago

C'est étonnant que la requête SPARQL retourne des ressources qui ne devraient pas être accessible. Je croyais justement que c’était le point cruciale que @nikoPLP devait implémenter dans l’implémentation des webALC sur fuseki.

srosset81 commented 2 years ago

Techniquement un triplet comme <containerUri> ldp:contains <resourceUri> fait partie de <containerUri>, c'est donc normal qu'il soit retournée si l'utilisateur a un droit de lecture sur le container.

fluidlog commented 2 years ago

@srosset81 Cette issue "high priority" a-t-elle été corrigée dans les dernières versions ?

srosset81 commented 2 years ago

Non

srosset81 commented 2 years ago

Conclusion du jour: ce serait plutôt un problème à régler côté Fuseki. Fuseki pourrait ne retourner que les resources du container accessibles par l'utilisateur, ce qui aurait une certaine logique, même si cela demanderait de traiter les containers comme des cas particuliers.

Par contre, cette vérification supplémentaire aura un coup sur les performances, et si ça se trouve, cela ralentirait encore les performances, notamment lorsque la majorité des ressources sont visibles.