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.
=>En fait possibilité de récupérer dans le plugin une exception DocumentSecurityException, on propose donc le patch suivant qui catach cette exception et renvoie un 403 dans les diférentes méthodes Webdav.
nuxeo-platform-webdav-server-5.1.4.diff
Est-ce un problème ?
Est-ce un comportement souhaitable ?
A noter que le rendu des pages semble fonctionner dans les workspaces. Dans les sections il faudrait pouvoir versionner (et donc publier) un répertoire entier.
=> voir et étudier à ce propos le plugin nuxeo-core-folder-versioning
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>
Cf le patch suivant donc : nuxeo-platform-login-anonymous-5.1.4.diff