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 catch 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 ?
N'est pas très lisible !
Ca marche quand on est déjà authentifié
On arrive sur la page d'accueil apres authentification CAS
Est-ce un comportement souhaitable ?
A noter que le rendu des pages semble fonctionner dans les workspaces via l'accès webdav depuis un navigateur.
=> il doit être possible d'obtenir la même chose dans les sections ... via un accès particulier (type webdav / resolver d'url via l'uid du proxy ...).
Dans les sections il faudrait pouvoir versionner (puis publier) un répertoire entier.
Nous avons tester le plugin nuxeo-core-folder-versioning (les configurations sont actuellement dans le trunk d'esup-ecm, mais elles sont désactivées), il permet effectivement de versionner un répertoire entier.
.... Caused by: java.lang.ClassCastException: org.nuxeo.core.versioning.folder.FolderishDocumentVersionDelegate at org.nuxeo.ecm.core.repository.jcr.JCRSession.createProxyForVersion(JCRSession.java:361) at org.nuxeo.ecm.core.api.AbstractSession.createProxy(AbstractSession.java:1925) ....
=> A étudier un peu plus.
==> WebEngine devrait nous permettre de répondre à nos attentes en ce qui concerne l'accès aux documents. => un resolver de documents (précisément de versions) sur WebEngine serait à réfléchir.
Le nom de l'auteur correspond toujours au nom de la personne authentifiée => pb.
La gestion des versions buguent un peu a priori : parfois la montée de version ne se fait pas.
Quand on redépose un document via le drag and drop, une nouvelle version est créée automatiquement (avec le même numéro de version que la version précédente). [A remonter à Nuxeo]
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
Le patch ci dessus permet aux utilisateurs de se connecter sur le webdav via l'authentification BASIC, en contrepartie il ne permet malheureusement plus une authentification anonyme ...
=> ce n'est pas forcément dérangeant ici ?
Les 2 plugins marchent bien ensemble, mis à part que lorsque l'authentification CAS est annulé par l'utilisateur, celui-ci ne peut plus être identifié comme anonyme : l'authentification anonyme ne prenant plus la main.
CF la classe AnonymousAuthenticator de nuxeo-platform-login-anonymous, un attribut dans la session de l'utilisateur BLOCK_ANONYMOUS_LOGIN_KEY est fixé pour permettre à l'authentification CAS de prendre la main. Dans le contexte d'une annulation d'authentification CAS, cet attribut n'est malheureusement pas supprimé.
Une poubelle par répertoire : difficile à gérer => faut-il que la poubelle soit une poubelle d'administrateur : permettrait à l'adminstrateur de pouvoir restaurer des fichiers/répertoires supprimés par les utilisateurs.
Présentation fonctionnelle de l'implémentation esup-ecm / ori-oai: presentation_Nuxeo_fonc.pdf