JCMS 5.5 : Accès WebDAV

JCMS 5.5 supporte le protocole WebDAV qui permet de naviguer dans les documents JCMS depuis l'explorateur Windows comme s'il s'agissait de simples répertoires. Cette navigation se fait au travers de l'arborescence de catégories de chaque espace de travail. Oûtre la navigation, WebDAV permet aussi l'édition des documents directement sur le serveur tout en gérant les accès concurrents.

1. Une nouvelle façon de gérer les documents

Lorsqu'un utilisateur dépose un document dans JCMS, JCMS enregistre le fichier et produit un objet Document contenant les méta données sur ce fichier telles que le titre, la description, les catégories, les droits, ... L'utilisateur peut consulter les documents déposés via les interfaces du back-office, la portlet explorateur ou des interfaces dédiées du front-office. Lorsque le document doit être mis à jour l'utilisateur doit le télécharger sur son poste, le modifier, puis le redéposer.

Le protocole WebDAV est un standard d'accès à des documents distants supportés par Windows ou MacOS. Intégré à JCMS, il simplifie la gestion des documents en permettant de manipuler de grand nombre de documents et de les éditer à distance.

1.1 Dépôt et organisation en masse

Les dossiers WebDAV sont vus comme des répertoire d'un système de fichier distants. Ils se manipulent avec la même interface que celle utilisée pour les disques locaux (l'explorateur sous Windows, le finder sous MacOSX) Il est donc très facile de copier, déplacer ou supprimer un grand nombre de document comme on le ferait dans un répertoire local.

Dépot de documents avec WebDAV.

1.2 Edition collaborative

Les documents peuvent être édités directement sur le serveur. Il suffit de double-cliquer sur le document (sous réserve que le système d'exploitation connaisse l'application associée à ce document). JCMS gère les accès concurrents sur un document. Ainsi si plusieurs utilisateurs éditent simultanément le même document, seul le premier utilisateur pourra modifier le fichier ; le second pourra néanmoins l'ouvrir en lecture. Les utilisateurs qui naviguent dans le back-office de JCMS verront que ces documents sont verrouillés (icône lock).

Edition d'un document Microsoft Word.

2. Utilisation de WebDAV

2.1. Pré requis

  • Système d'exploitation
  • Client WebDAV
    • Windows WebFolder
    • Mac OS X Finder
  • Navigateur Web

2.2 Activation de WebDAV

L’activation de la fonctionnalité WebDAV se fait dans l’onglet Accès des propriétés de JCMS. L’option Edition des documents permet d'activer ou non l’édition à distance des documents. Cette édition n'est présentée que pour les utilisateurs utilisant Internet Explorer sous Windows. Avec FireFox ou sur Mac OS X, les documents peuvent néanmoins être édités à distance en les ouvrant depuis l'interface de navigation.

L'option Filtre IP WebDAV permet de limiter les adresses IP pouvant accèder à WebDAV (par exemple, pour restreindre l'accès à WebDAV aux utilisateurs de l'intranet).

Activation de WebDAV dans l'éditeur de propriétés de JCMS.

2.3 Autorisation d'accès

L'accès WebDAV peut être restreint pour les contributeurs et administrateurs fonctionnels. Ils doivent avoir le droit Accès WebDAV ou appartenir à un groupe ayant ce droit. Les personnes non authentifiées ne peuvent pas bénéficier de l'accès WebDAV. Enfin, pour pouvoir naviguer dans l'explorateur WebDAV, l'utilisateur doit disposer du droit de gestion des catégories sur la branche concernée.

Autorisation d'accès WebDAV pour un membre.

Les interfaces WebDAV sont des vues des objets JCMS. Les droits JCMS de consultation et de contribution sont toujours appliqués. Un membre navigant avec WebDAV n'a pas de droits supplémentaires. Le tableau ci-dessous récapitule les droits appliqués selon les actions effectuées dans les dossiers WebDAV.

Action Droits
Navigation à la racine Droit de consultation des espaces de travail
Navigation sous dossiers Droit de consultation des catégories/documents
Dépôt de fichiers Droit de contribution pour le type "FileDocument"
Dépôt de dossiers Droit de gestion des catégories
Renommer un dossier Droit de gestion des catégories
Déplacer un dossier Droit de gestion des catégories
Renommer un fichier Droit d'édition du document associé
Déplacer un fichier Droit d'édition du document associé
Droits de cochage des catégories

 

2.4 Navigation dans les documents

2.4.1 Ouverture d'un dossier web

  • Aller dans "Favoris Réseau" > "Ajout d’un Favori réseau"
  • Indiquer l’adresse du serveur WebDAV (http://url.du.site:port/webdav)
  • Entrer le compte et mot de passe d'un membre JCMS (cocher la case "mémoriser")
  • Indiquer un nom pour le dossier web

Création d'un dossier Web.

2.4.2 Ouverture depuis JCMS

L’icône webdavFolder permet d’ouvrir directement un explorateur WebDAV depuis JCMS. Le dossier ouvert correspond à la catégorie courante de JCMS. Cette fonctionnalité nécessite l’utilisation d’Internet Explorer ou de l’extension «openwebfolder» (http://openwebfolder.mozdev.org/) pour les utilisateurs de FireFox.

Espace d'administration.

Cette icône est présente dans plusieurs interface de JCMS (Explorateur de Médias, Gestionnaire des contenus, Espace d'administration, ...). Elle n'apparaît que si l'utilisateur a le droit d'accès WebDAV et si il peut consulter la catégorie concernée.

Accès WebDAV depuis l'Explorateur de Médias.

2.4.3 Affichage de la racine

A la racine du dossier WebDAV sont présentés les espaces de travail. Sous chaque espace de travail se trouve l'ensemble des catégories de l'espace.

Structure d'un dossier WebDAV.

2.5 Dépôt de documents

En utilisant la fonctionnalité WebDAV, il est possible de déposer en masse une arborescence de dossiers et de fichiers dans JCMS. Des catégories et des FileDocuments seront alors créés avec les caractéristiques suivantes :

  • Les documents déposés dans un espace de travail appartiennent à cet espace.
  • Les documents déposés dans un sous dossiers de l'espace sont catégorisés avec la catégorie correspondant à ce dossier
  • Des dossiers déposés directement à la racine d'un espace de travail le modifient : les catégories créées sont rajoutées aux racines de l'espace.

 

Dépot de plusieurs documents simultanément.

2.5.1 Filtrage

Un filtre permet d'ignorer les fichiers générés automatiquement par les systèmes d'exploitation:

channel.webdav.filter.silent: ^(.+\\.lnk)|(Thumbs\\.db)|(\\.DS_Store)|(\\._.*)|
(Word Work File.*)|(\\.TemporaryItems)$

2.5.2 Quotas

Les quotas de JCMS s'appliquent aussi aux documents gérés avec WebDAV. Pour les détails, sur la mise en oeuvre reportez-vous à la FAQ Configurer les permissions (quotas) sur les téléchargements.

2.6. Déplacement et copie des documents

Les documents peuvent être déplacé ou copié d'un dossier à un autre. Le comportement est alors le suivant :

  • Un document déplacé d'une catégorie à l'autre est recatégorisé
  • Un document copié d'une catégorie à l'autre est catégorisé sous les 2 catégories
  • Un document déposé dans un dossier différent crée un nouveau document
  • Un document déposé dans le même dossier écrase le précédent
  • Un document supprimé d'un dossier est décatégorisé.
  • Un document supprimé d'un espace de travail (sans catégories) est détruit.
  • Si un document est déplacé d'un espace à l'autre, il appartiendra au nouvel espace si plus aucune catégorie de l'ancien ne le référence.

2.7. Edition d'un document

2.7.1 Fonctionnement

Pour éditer un document directement sur un serveur web, il faut utiliser un logiciel "client" supportant le protocole WebDAV. Les logiciels de la suite Microsoft Office sont des clients capables d'utiliser ce protocole.

Attention :

  1. Il existe plusieurs usages de WebDAV: La manipulation de fichiers, l'édition en ligne, la gestion de version, ... Pour fonctionner avec JCMS, les logiciels clients doivent être capables d'éditer en ligne un document ;
  2. Le protocole WebDAV est extensible. Certains logiciels comme la suite Adobe annoncent le support de WebDAV mais ne fonctionnent pas avec JCMS. En réalité, ils utilisent ce protocole pour communiquer entre les clients et le serveur propriétaire.

2.7.2 Edition depuis l'interface web

Cette fonctionnalité n'est disponible que dans une configuration spécifique:

  • Microsoft Internet Explorer 6
  • Microsoft Windows

L'icône webdavFile permet l’édition à distance d’un document ; sous réserve que l'application supporte l'édition par WebDAV. C'est par exemple le cas de la suite Microsoft Office.

Edition à distance depuis le gestionnaire des contenus de JCMS.

Lorsqu'un document est ouvert depuis un navigateur web, celui-ci est téléchargé localement et ouvert par le logiciel dédié. Pour contourner ce comportement, JCMS génère un raccourci windows (.lnk) qui force le navigateur web à ouvrir le document avec le logiciel dédié, en passant par la servlet WebDAV.

Une propriété de JCMS définit les types de fichiers qui peuvent être édités directement depuis l'interface web:

channel.webdav.mime-type: application/msword|application/vnd.ms-excel|application/vnd.ms-powerpoint|text/xml

2.7.3 Accès concurrents

JCMS implémente le protocole WebDAV version 2. Ce niveau d'implémentation permet la gestion des verrous nécessaires au bon fonctionnement avec la suite Microsoft Office.

Accès concurrent lors de l'édition à distance.

Quand un utilisateur accède à un document Office, il prend un verrou WebDAV et un verrou JCMS. Les contributeurs JCMS sont informés visuellement que le document est en cours d'édition par l'icône lock. Si un autre utilisateur édite ce document avec Microsoft Office, il est alors notifié de la présence d'un verrou. Le document n'est alors accessible qu'en lecture seule.

Edition concurrente avec Microsoft Word.

Microsoft Office rafraîchit ces verrous toutes les 3 minutes. Quand le document est fermé, le verrou est relâché.

2.8 Edition des catégories

La gestion des catégories à travers l'interface des dossiers web fonctionne de la même manière que n'importe quel autre explorateur de fichier.

2.8.1 Ajout et suppression de catégorie

L'ajout d'une catégorie se fait par la création d'un nouveau dossier ou le dépôt d'un dossier depuis le système de fichier local. Pour supprimer une catégorie, il faut supprimer le dossier.

Remarques :

  • Aucune catégorie ne peut être créée sous la racine.
  • Les catégories créées directement sous un espace de travail modifient les racines de l'espace.

2.8.2 Renommer une catégorie

Pour renommer une catégorie, il suffit de renommer le dossier. Sélectionner le dossier et appuyer sur la touche F2, ou clic droit "Renommer".

2.8.3 Copie et déplacement de catégories

Les dossiers peuvent être copiés ou déplacés d'un endroit à l'autre. Les catégories seront alors déplacées ou dupliquées. Lors d'une copie, les documents sous ces catégories seront recatégorisés avec la catégorie dupliquée.

2.9 Interaction avec JcmsUniversal

Le module JcmsUniversal convertit les documents en PDF et les indexe. Pour cela, il surveille le répertoire upload/ de JCMS. Les documents déposés avec WebDAV seront donc normalement pris en compte par JcmsUniversal. Les déplacements (recatégorisation) n'impacte pas JcmsUniversal puisque les fichiers ne sont pas déplacés. Par contre, lors de l'édition à distance, à chaque enregistrement du document, JcmsUniversal le reconvertira et le réindexera.

2.10 Interaction avec le protocole de réplication JSync

Les documents édités et sauvegardés depuis un client WebDAV ne provoquent pas de mises à jour dans le store de JCMS. Les fichiers sont simplement mis à jour. La réplication fonctionne donc avec WebDAV si les fichiers sont centralisés et ne sont pas répliqués.

Note: Les locks sont gérés au niveau du serveur JCMS et ne sont pas répliqués. Deux personnes peuvent éditer un même document si elles y accèdent par 2 réplicas différents. Il est fortement conseillé de centraliser l'édition des documents sur un seul réplica.

3. Fonctionnement interne

3.1 Le protocole WebDAV

3.1.1 Définition

WebDAV (Web-based Distributed Authoring and Versioning) est un protocole (plus précisément, une extension au protocole HTTP) défini par le groupe de travail IETF éponyme. Décrit dans la RFC 2518, WebDAV permet de simplifier la gestion de fichiers avec des serveurs distants. Il permet de récupérer, déposer, synchroniser et de publier des fichiers (et dossiers) rapidement et facilement. L'objectif principal de WebDAV est de rendre possible l'écriture à travers le web et pas seulement la lecture de données. Mieux qu'avec un client FTP ou sur un lecteur réseau, WebDAV permet à plusieurs utilisateurs d'éditer le contenu d'un dossier web simultanément. Il saura gérer les droit d'accès aux fichiers (ou dossiers), en verrouillant momentanément le(s) fichier(s) (ou dossier(s)) édité(s). Sous Windows XP les dossiers WebDAV se trouvent dans les "Favoris réseau".

Source: Wikipedia

3.1.2 Extensions

Voici une brève description des extensions fournies par DAV :

  • Protection contre l'écrasement : mécanisme de verrouillage et de déverrouillage pour éviter les problèmes de synchronisation de mises à jour. Le protocole DAV supporte les accès exclusifs et partagés.
  • Propriétés : méta données (titre, sujet, créateur, etc.).
  • Gestion des attributs de fichiers : copier, renommer, déplacer et supprimer des fichiers.
  • Contrôle d'accès : limitation d'accès à des ressources diverses. Généralement, DAV considère qu'un contrôle d'accès est déjà en place, et ne fournit pas de mécanisme d'authentification robuste.
  • Gestion des versions : contrôle de versions des documents. Le contrôle des versions n'est pas encore mis en œuvre.

Source: Wikipedia

Parmi ces extensions, l'implémentation de JCMS permet une Protection contre l'écrasement, Gestion des attributs de fichiers, et le Contrôle d'accès.

3.1.3 En savoir plus

3.2 L'implémentation dans JCMS

Voici le schéma d'architecture de WebDAV dans JCMS :

Architecture WebDAV-JCMS

3.2.1 Gestion de l'authentification

L'authentification WebDAV s'effectue en 2 étapes. La première étape consiste à utiliser la mécanique de JCMS. La seconde propose ensuite une authentification BASIC dans le cas ou le client WebDAV n'est pas capable de présenter une interface web.

Etape 1: Le Filtre "InitFilter" initialise la requête utilisateur, déclenche l'Authentication Manager, et positionne tout ce qui est nécessaire au bon fonctionnement de JCMS.

Etape2: Le WebDAVContext est initialisé et effectue une authentification supplémentaire:

  • Vérification de l'adresse IP définie dans la propriété: channel.webdav.ip-filter
  • Recherche du membre initialisé par la InitFilter
  • Tentative d'authentification BASIC
  • Vérification du droit d'accès WebDAV

Remarque: Lors de l'édition d'un document Microsoft Office, il est possible que l'authentification BASIC soit demandée plusieurs fois. Microsoft Office est un client distinct des dossiers Web et d'Internet Explorer. Ces trois clients web ne partagent pas la même session, ce qui nécessite parfois plusieurs authentifications.

3.2.2 Edition depuis l'interface web

Microsoft Internet Explorer a introduit un nouvel attribut "FOLDER" pour le tag <a>. Cet attribut combiné à du code CSS permet l'ouverture d'un dossier web. L'extension Firefox OpenWebFolder permet de reproduire ce comportement avec Firefox.

Il n'est pas possible d'éditer depuis le navigateur un document en passant par WebDAV. Il existe une technique de Microsoft SharePoint consistant à modifier la base de registre du poste client de manière à rendre les documents office "éditables" mais ce n'est pas envisageable dans JCMS.

Pour contourner ce problème, la requête d'édition d'un document est redirigée vers la Win32LinkServlet. Cette servlet génère dynamiquement un raccourci Windows (.lnk) ciblant le document en passant par la servlet WebDAV. Ainsi le document est édité via les dossiers web et non le navigateur.

3.2.3 Le tag <jalios:webdav>

Pour générer un lien WebDAV vers une catégorie ou un document, JCMS fournit le tag <jalios:webdav>. Voici plusieurs exemples d'utilisation:

<%-- Lien avec titre vers un dossier web à la racine --%>
<jalios:webdav showRoot='true' folder='<%= channel.getRootCategory() %>' title='Racine Webdav' />
<%-- Lien un dossier web dans un espace de travail (dépendant de la catégorie) --%>
<jalios:webdav folder='<%= channel.getCategory("MaCategory_ID") %>' title='MaCategory' />
<%-- Lien vers l'edition d'un document --%>
<jalios:webdav doc='<%= (FileDocument)channel.getPublication("MonDoc_ID") %>' openByBrowser='<%= false %>' />

3.2.4 Développements spécifiques

Modification du comportement standard

Le fichier custom.WebdavPolicy.java permet de changer le comportement standard de l'implémentation de WebDAV. Les méthodes de cette classe peuvent être modifiées afin d'obtenir un autre comportement de WebDAV.

Contexte de DataController

Lors de la création/modification/suppression d'objet JCMS, les DataControllers sont invoqués. La servlet WebDAV indique, via le contexte des DataController, qu'elle effectue ces opérations. Il est ainsi possible de développer des DataController ayant un comportement spécifique pour des écritures liées à des opérations WebDAV. L'attribut du contexte est un Boolean dont la clé est DataController.CTXT_WEBDAV.