freedom dav (pour version < 3.0.9 de freedom-toolbox)

La gestion du protocole dav est intégrée dans dynacase-platform depuis la version 3.0.9

Présentation du module freedom-dav

Le système DAV de FREEDOM gère deux serveurs WebDAV :

  • un serveur authentifié par login et mot de passe, pour une utilisation classique au travers de client WebDAV tel que l'explorateur de fichier Microsoft Windows
  • un serveur authentifié par identifiant de sessions pour être utilisé à travers l'interface Web d'échange de fichiers.


Lors de la modification de fichiers par l'interface Web, l'éditeur de fichier utilise le serveur WebDAV authentifié par n° de session. L'adresse de ce serveur WebDAV doit être précisé dans le paramètre applicatif FREEDAV_SERVEUR. L'adresse du deuxième serveur doit être renseigné dans le paramètre WEBDAV_SERVEUR.
Ces deux serveurs doivent avoir deux noms distincts du nom de la machine pour l'accès à l'interface web. Ces deux noms désignent la même machine (alias DNS) que le serveur WEB. Le serveur Web Apache doit être configuré pour avoir deux hôtes virtuels (virtualhost) correspondant aux deux serveurs DAV.

Configuration des postes client pour freedom-dav

Sous Windows

Le navigateur Web ne peut pas nativement exécuter un autre programme. Pour autoriser votre navigateur à ouvrir les éditeurs vous devez installer deux fichiers sur votre poste client 'opendav.reg' et 'opendav.vbs' :

Pour enregistrer le protocole pour le navigateur, il faut double-cliquer sur l'icone du fichier 'opendav.reg' que vous avez téléchargé. Ensuite il faut enregistrer le fichier 'opendav.vbs' dans le répertoire C:\WINDOWS.

Après cette manipulation à partir de votre navigateur Internet Explorer ou Firefox, vous pouvez éditer et enregistrer les fichiers comme s'ils étaient sur votre disque dur.

Lorsque vous cliquez sur le lien ' Ouvrir dans un éditeur', une interface vous demande de choisir le programme capable de lire le fichier. Pour enregistrer le fichier sur le serveur, une fois les modifications effectuées, il suffit d'utiliser le menu enregistrer de l'éditeur comme d'habitude

Il est également possible de connecter un lecteur réseau qui permettra d'accéder à Dynacase-platform comme à un accès réseau partagé, cela peut être pratique pour l'ajout simultané de nombreux fichiers, que l'on pourra par la suite, enrichir en métadonnées.

Notes

  • Une mise à jour du client WebDAV/WebFolders de Windows est disponible, et corrige apparemment plsueirus problèmes comme la gestion des caractères accentués : http://support.microsoft.com/kb/907306
  • Si votre accès Internet se fait via un proxy, il peut être nécessaire de modifier la configuration de votre poste.

Sous Linux

Firefox

Dans firefox, entrez l'URL : about:config Ajouter les options suivantes :

  • [bouton droit > Nouvelle > Valeur booléenne]

nom : network.protocol-handler.external.asdav valeur : true

  • [bouton droit > Nouvelle > Chaîne de caractère]

nom : network.protocol-handler.app.asdav valeur : freedom-opendav.sh

Dans un répertoire de votre path (accessible par $PATH lors du lancement du navigateur)

Pour visualiser les répertoires de votre variable PATH, il suffit de lancer dans une console la commande : echo $PATH

Pour Firefox > 3.5, il faut aussi lancer deux commande à l'aide de gconftool-2 :

gconftool-2 -s /desktop/gnome/url-handlers/asdav/command '/path/to/app %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/asdav/enabled --type Boolean true

Créer le fichier de commande freedom-opendav.sh

#!/bin/bash
np=`echo $1 | sed "s/asdav:/http:/"`
ooffice "$np"

Ce fichier doit être exécutable.

Pour cela, il faut ajouter le droit : chmod +x

Il reçoit en argument l'URL du fichier à éditer. Cette URL est une ressource asdav: qui doit être transformé en http: et être fournie à l'éxécutable Open Office.

Ce script lance simplement openoffice avec le fichier du serveur WebDAV.

Si la configuration n'est pas correcte, vous allez rencontrer ce message :

Si tout fonctionne correctement, vous allez avoir cette fenêtre :

Méthode automatique pour configurer Firefox pour un profil utilisateur avec « user.js »

Dans le profil de Firefox (ex : /home/toto/.mozilla/firefox/5i4imfkt.default), il faut créer ou modifier le fichier « user.js » et ajouter ces deux lignes :

user_pref("network.protocol-handler.app.asdav", "freedom-opendav.sh");
user_pref("network.protocol-handler.external.asdav", true);

Méthode automatique pour tous les profils d'un ordinateur

Dans le dossier d'installation de Firefox (ex : /opt/firefox/defaults/pref), il faut créer le fichier « all-freedom-dav.js » et ajouter ces deux lignes :

pref("network.protocol-handler.app.asdav", "freedom-opendav.sh");
pref("network.protocol-handler.external.asdav", true);

Méthode avec une extension XPI

FIXME

Sous Mac OS X

Télécharger et installer l'application Asdav.app :

L'application Asdav.app permet d'ouvrir les URLs `asdav:' de Dynacase-platform avec OpenOffice, et donc d'éditer en ligne tous les types de fichiers supportés par celui-ci.

Asdav.app utilisera en premier OpenOffice.org.app, et si celui-ci n'est pas disponible il utilisera NeoOffice.org.app.

Note pour les utilisateurs sous Mac OS X Tiger (10.4)

OpenOffice.org.app 3.0.0 comporte un petit bug qui le rend inutilisable lorsqu'il est lancé par Asdav.app (c.f. http://www.openoffice.org/issues/show_bug.cgi?id=93731)

Pour contourner ce problème, il faut éditer le fichier `/Applications/OpenOffice.org.app/Contents/Info.plist' et changer la valeur de la clef `CFBundleExecutable' par `soffice.bin' :

[...]
<key>CFBundleExecutable</key>
<string>soffice.bin</string>
[...]

Note: ce problème doit être à présent résolu à partir de OpenOffice.org 3.0.1

Installation de freedom-dav sur Dynacase-platform >=2.13 installé par Dynacase-control

Le module `freedom-dav' nécessite sa propre base de donnée, et le service Postgresql associé.

Une fois ces éléments créé, vous pouvez lancer l'installation de `freedom-dav' et rentrer le service Postgresql créé précédemment lorsque celui-ci sera demandé par Dynacase-control.

Une fois installé, l'utilisation de la fonction DAV nécessite la création de deux configurations Apache à base de VirtualHosts. Comme cette conf n'est pas accessible et réalisable par Dynacase-control, vous devrez insérer les configurations données ci-dessous dans la configuration de votre serveur Apache.

Pré-requis

Il est nécessaire d'avoir installé avec dynacase-control une version de Dynacase-platform >=2.13 pour faire fonctionner cette version de freedom-dav :

Création de la base de données webdav

Le module freedom-dav nécessite la création d'une base de données spécifique pour son fonctionnement :

[root@server ~]# su postgres
[postgres@server ~]# psql
postgres=# CREATE DATABASE webdav OWNER freedomowner;

Création du service Postgresql pour accéder à la base de données

[root@server ~]# more $PGSYSCONFDIR/pg_service.conf 
[webdav]
host=localhost
port=5432
user=freedomowner
password=password
dbname=webdav

Installation du module freedom-dav avec Dynacase-control

Ce module nécessite en pré-requis l'activation du module “rewrite” :

a2enmod rewrite
/etc/init.d/apache2 restart

Dans Dynacase-control, il faut installer le module “freedom-dav” :

et indiquer dans les paramètres le nom de service Postgresql créé précédemment :

Une fois l'installation terminée, il est possible de vérifier que la base de données webdav est correctement initialisée :

# su postgres
postgres@fcnet:/root$ psql webdav
...
webdav=# \dt
             List of relations
 Schema |    Name    | Type  |    Owner
--------+------------+-------+-------------
 public | locks      | table | freedomrole
 public | properties | table | freedomrole
 public | sessions   | table | freedomrole
(3 rows)

VirtualHosts Apache pour l'accès aux fonctions WebDAV

Pour utiliser les fonctions d'édition et de montage WebDAV, vous devez mettre en place deux VirtualHosts Apache.

Pour cela, il vous faut déclarer deux noms DNS additionnels qui pointeront vers votre serveur Freedom.

Exemple

Soit un serveur Freedom installé par Dynacase-control le répertoire `/var/www/ged', et accessible par l'enregistrement DNS `ged.example.net'.

Vous pouvez créer deux enregistrements DNS `ged-freedav.example.net' et `ged-webdav.example.net' qui pointeront vers `ged.example.net'

ged-freedav IN CNAME ged.example.net.
ged-webdav  IN CNAME ged.example.net.

Dans ce cas, les configurations associées seront :

  • Configuration pour l'accès FreeDAV (édition en ligne) :

Fichier de configuration `/etc/apache2/sites-available/default-freedav'

<VirtualHost *:80>
        ServerName ged-freedav.example.net

        DocumentRoot /var/www/ged/freedav

        <Directory /var/www/ged/freedav/>
                Order allow,deny
                Allow from All

                DirectoryIndex index.php

                Options FollowSymLinks
                AllowOverride All
        </Directory>

        ErrorLog /var/log/apache2/freedav.error.log
</VirtualHost>

Activer la configuration

# a2ensite ged-freedav
# /etc/init.d/apache2 restart
  • Configuration pour l'accès WebDAV (montage comme système de fichier) :

Fichier de configuration `/etc/apache2/sites-available/ged-webdav'

<VirtualHost *:80>
        ServerName ged-webdav.example.net

        DocumentRoot /var/www/ged/webdav

        <Directory /var/www/ged/webdav/>
                Order allow,deny
                Allow from All

                DirectoryIndex index.php

                Options FollowSymLinks
                AllowOverride All
        </Directory>

        ErrorLog /var/log/apache2/webdav.error.log
</VirtualHost>

Activer la configuration

# a2ensite ged-webdav
# /etc/init.d/apache2 restart

Remarque : Il est possible de vérifier avec votre navigateur que les deux VirtualHost fonctionnent correctement :

Paramètres applicatif

Positionner les paramètres applicatif suivants avec les noms DNS associés aux accès FreeDAV et WebDAV :

  • Dav > adresse du serveur webdav pour freedav = “ged-freedav.example.net”
  • Dav > adresse du serveur webdav pour le serveur authentifié = “ged-webdav.example.net”

Paramétrage de freedom-dav

Le module freedom-dav comporte quatre paramètres accessibles via :

  • menu “Administration”
  • onglet “Paramètres applicatifs”
  • section “Dav”
référence nom
FREEDAV_SERVEUR adresse du serveur webdav pour freedav alias de nom de la machine serveur. Le virtual host associé ne doit pas être authentifié
WEBDAV_SERVEUR adresse du serveur webdav pour le serveur authentifié alias de nom de la machine serveur. Le virtual host associé doit être authentifié
WEBDAV_DB coordonnées d'accès à la base de données webdav référence la base de données de travail pour le serveur WebDAV
WEBDAV_ROOTID Identifiant du dossier racine pour l'accès authentifiéidentifiant du document dossier pour la racine du webdav authentifié. Lors d'un usage combiné avec WORKSPACE, la référence désigne un document recherche simple qui recherche l'ensemble des espaces de travail

Test de débogage de freedom-dav

En cas de problème dans la mise en place du module freedom-dav, il est possible d'effectuer différents tests pour identifier la source du problème.

Test avec cadaver

Le client en ligne de commande webdav disponible sous Linux permet de vérifier que la connexion au serveur webdav et au serveur freedav fonctionne correctement :

$ cadaver ged-freedav
dav:/>
$ cadaver ged-webdav
Authentication required for  on server `ged-webdav':
Username: admin
Password:
dav:/> ls
Listing collection `/': succeeded.
Coll:   import                                 0  sep 17 16:25
Coll:   la poubelle                            0  sep 17 16:25
Coll:   les cycles                             0  sep 17 16:25
Coll:   les familles                           0  sep 17 16:25
Coll:   les maisons                            0  sep 17 16:25
Coll:   les profils                            0  sep 17 16:25
dav:/>

En cas de problème, il faut regarder dans les logs du serveur

Test avec Konqueror sous KDE

Avec Konqueror, l'URL suivante permet de se connecter à un serveur Webdav : webdav://ged-webdav

Montage d'un partage Webdav

Sous Linux, le paquet “davfs2” permet de monter un partage Webdav dans son système de fichiers. Cela permet d'accéder aux fichiers de freedom en lecture et en écriture comme les fichiers locaux :

mount -t davfs http://ged-webdav /home/tony/webdav/ -o uid=tony,rw,file_mode=700

Accès à un partage Webdav sous Windows

Sous Windows pour accèder à un partage Webdav, il faut :

  • Favoris Réseaux
  • Ajout d'un favoris réseau
  • Adresse réseau ou internet : http://ged-webdav

Ensuite, les fichiers de freedom seront accessibles en lecture et en écriture et il sera également possible d'en ajouter de nouveaux

Troubleshoot du module freedom-dav

Delocker un document

Situation : Le document a été chargé en édition avec OpenOffice.org, et celui-ci plante, laissant le document locké au niveau WebDAV

Solution : Identifier l'URL du document (exemple asdav:/ /freedav.example.net/freedav/vid-12765-4870-3a0404dfe29f7c88bb58ac8a6943559d/Foo.odt), et supprimer le lock du document dans la table locks :

# psql -U postgres -d webdav \
    -c "DELETE FROM locks WHERE path = '/freedav/vid-12765-4870-3a0404dfe29f7c88bb58ac8a6943559d/Foo.odt'"

Lenteurs d'accès

Il arrive sur certains postes en Windows XP d'avoir des lenteurs d'accès aux documents : les temps d'accès constatés sont d'environ 30 secondes.

Ces problèmes sont inhérents à Windows, il existe 2 solutions possibles pour pallier à ces lenteurs :

1. Solution pour intranet (modification du serveur freedom)

Sur votre serveur freedom, installez samba avec aptitude

sudo aptitude install samba
sudo /etc/init.d/smbd start

Explication: samba permet d'avoir des services sur le serveur qui répondent sur les ports netbios etc … et permet d'éviter les timeouts des requêtes des postes client.

Cette solution ne marche pas à travers un lien internet car généralement, les ports netbios sont bloqués.

2. Solution pour tous les cas (modification de chaque poste client)

La solution consiste à permuter les fournisseurs d'accès réseau en passant “Web Client Network” avant “Réseau Microsoft Windows”.

Pour cela, allez dans le panneau de configuration puis dans Connexions réseau / Avancé / Paramètres avancés :

Dans l'onglet “Ordre des fournisseurs”, vous placez “Web Client Network” en tête de liste.

Explication: lorsque vous cherchez à accéder à un serveur dav, le fournisseur réseau du dav devient prioritaire sur les autres services réseau, ce qui évite les problématiques de timeouts.

Par contre cale peut potentiellement engendrer d'autres lenteurs pour accéder à d'autres ressources réseau (serveur de fichier, active directory, …).

Cette solution est à appliquer au cas par cas.

Autre solution pour résoudre des problèmes de lenteurs d'accès

Certaines machines de la GED sont lentes car elle cherchent un proxy automatiquement (mécanisme Windows) via le principe de WPAD.

Les machines procèdent dans cette ordre :

  • demande au serveur DHCP s'il y a un “serveur” WPAD
  • recherche sur le réseau s'il y a un serveur WPAD (par Netbios puis DNS)
  • Si rien de trouvé alors on n'utilise pas WPAD

C'est le temps que mettent les machines à passer à la dernière étape qui provoque la lenteur. La solution a donc été de paramétré un serveur WPAD sur le réseau.

Un serveur WPAD et un serveur Web qui renvoie un fichier wpad.dat avec les informations correspondant au proxy à utiliser sur le réseau. Il faut donc que http://serveurpad/wpad.dat renvoie quelque chose. Voici le contenu du fichier :

function FindProxyForURL(url, host)
{
return "DIRECT";
}

Ce fichier indique simplement de ne pas utiliser de proxy(DIRECT).

Il faut ensuite donner le mime type du fichier au serveur WEB, dans apache il faut rajouter la ligne :

AddType application/x-ns-proxy-autoconfig .dat

Relancer Apache.

Faire le test en saisissant http://ip_du_serveur/wpad.dat cela doit vous télécharger le fichier.

Il faut maintenant que les machines puissent trouver le serveur WPAD. Dans ce cas le plus simple et de donner WPAD en nom de machine netbios du serveur WEB, on utilise samba avec cette ligne :

netbios name = WPAD

Il est également possible de le faire par le DHCP (à confirmer car lors de nos test c'est le netbios qui était utilisé car la machine était en IP fixe et non dhcp).

Paramétrage du DHCP sous linux (serveur isc-dhcp) : On crée un enregistrement 252 :

option wpad-url    code 252 = text;

On rajoute cette option dans la configuration du pool :

subnet 172.17.0.0 netmask 255.255.0.0 {
      option subnet-mask 255.255.0.0;
      option routers 172.17.0.2;
      option broadcast-address 172.17.255.255;
      option wpad-url "http://172.17.0.191/wpad.dat";

Désormais les machines trouvent directement le serveur WPAD qui leur répond qu'il n'y a pas de proxy à utiliser.

modules/freedom-dav/freedom-dav.txt · Dernière modification: 22/09/2011 08:56 par marc