semapps icon indicating copy to clipboard operation
semapps copied to clipboard

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

Open srosset81 opened this issue 4 years ago • 5 comments

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.

srosset81 avatar Oct 15 '21 08:10 srosset81

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.

simonLouvet avatar Dec 01 '21 11:12 simonLouvet

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.

srosset81 avatar Dec 01 '21 14:12 srosset81

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

fluidlog avatar Jan 24 '22 11:01 fluidlog

Non

srosset81 avatar Jan 24 '22 15:01 srosset81

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.

srosset81 avatar Mar 31 '22 15:03 srosset81