Recherche
Dans le plugin nuxeo-platform-webdav-server, la méthode permettant de résoudre les urls est CoreHelper.resolveVirtualPath.
Cette méthode vérifie que chaque dossier/fichier constituant un chemin existe via la méthode du Nuxeo Core AbstractSession.exists.
La méthode AbstractSession.exists renvoie false si l'objet n'existe pas OU si l'utilisateur n'a pas les droits de BROWSE sur l'objet.
=> l'utilisateur obtient un 404 pour les objets qu'il n'a pas le droit de consulter.
Est-ce un problème ?
On a patché le plugin nuxeo-platform-login-anonymous (5.1.4) pour qu'il accepte en paramètres des SkipUrlRetrieveIdentity_* (urls qui ne seront ps traités par la procédure d'identification de nuxeo-platform-login-anonymous). On peut alors avoir quelque chose comme :
<extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService" point="authenticators"> <authenticationPlugin name="ANONYMOUS_AUTH" enabled="true" class="org.nuxeo.ecm.platform.ui.web.auth.anonymous.AnonymousAuthenticator"> <parameters> <parameter name="SkipUrlRetrieveIdentity_Dav">dav</parameter> </parameters> </authenticationPlugin> </extension>