Date de création : | 28 10 2004 | |
Dernière modification : | 15 11 2004 | |
Diffusion : | internet |
Ce document explicique comment installer le serveur WebDAV V2.
Le serveur WebDAV V2 est composé :
Un serveur LDAP est indispensable pour pouvoir utiliser le serveur WebDAV V2.
Le serveur WebDAV V2 est configuré par défaut avec un maximum de sécurité, i.e. un minimum de droits. Seul un administrateur a tous les droits et peut positionner d'autres droits si nécessaire. Les autres utilisateurs du serveur (provenant de l'annuaire LDAP) ont uniquement un droit de lecture/écriture sur leur homedir.
Le package du serveur WebDAV V2 est disponible dans l'espace de téléchargement du site.
Pour installer correctement le serveur WebDAV V2 il convient de respecter scrupuleusement la méthode suivante :
Il y a 4 fichiers à modifier :
Pour faciliter la configuration des fichiers xml, les
paramètres à modifier sont entourés par :
<!-- CONFIGURE THE FOLLOWING PARAMETER(S)
-->
...
<!-- /CONFIGURE -->
Dans l'ordre d'apparition :
+ Chemin absolu de stockage des fichiers (prévoir grand)
<parameter
name="rootpath">C:/slideTxtStore/store/metadata</parameter>
<parameter
name="workpath">C:/slideTxtStore/work/metadata</parameter>
<parameter
name="rootpath">C:/slideTxtStore/store/content</parameter>
<parameter
name="workpath">C:/slideTxtStore/work/content</parameter>
+ Paramètres du serveur LDAP (voir descriptif de chaque paramètre)
<!-- LDAP baseDN -->
<parameter
name="jndi.container">ou=####,dc=####,dc=####</parameter>
<!-- unique attribute representing the user in
the LDAP directory -->
<parameter name="jndi.attributes.rdn">uid</parameter>
<!-- LDAP filter - ex :
(&(uid=55*)(compte=on)) -->
<parameter name="jndi.search.filter"></parameter>
<!-- LDAP scope : SUBTREE_SCOPE |
ONELEVEL_SCOPE | OBJECT_SCOPE -->
<parameter
name="jndi.search.scope">SUBTREE_SCOPE</parameter>
<!-- attributes to retrieve in the LDAP
directory -->
<parameter
name="jndi.search.attributes">postalCode,initials,givenName</parameter>
<!-- LDAP URL -->
<parameter
name="java.naming.provider.url">ldap://myLDAPServerURL:389</parameter>
<!-- Don't modify this parameter -->
<parameter
name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</parameter>
<!-- Authentication parameters -->
<!-- LDAP principal - if needed to bind -->
<parameter
name="java.naming.security.principal"></parameter>
<parameter
name="java.naming.security.authentication">simple</parameter>
<!-- LDAP credential - if needed to bind -->
<parameter
name="java.naming.security.credentials"></parameter>
+ Paramètres du serveur MySQL (optionnel)
<parameter
name="url">jdbc:mysql://myBaseURL/mySlideTableName</parameter>
<parameter name="user">connectionLogin</parameter>
<parameter name="password">connectionPassword</parameter>
<parameter name="dbcpPooling">true</parameter>
<parameter name="maxPooledConnections">10</parameter>
<parameter name="isolation">SERIALIZABLE</parameter>
<parameter name="compress">false</parameter>
+ Activation du stockage des roles dans la base MySQL - laisser en commentaire la ligne en cas de non utilisation de la base pour le stockage des roles (ils seront stockés dans des fichiers XML)
<!-- uncomment this ligne to
enable JDBC store for roles -->
<!-- scope match="/roles" store="MySql"/-->
+ Création de l'utilisateur root - cet utilisateur à tous les droits sur le serveur WebDAV V2, contrairement aux autres utilisateurs (de l'annuaire LDAP) qui n'ont que des droits de lecture et d'écriture dans leur homedir
<!-- replace rootUser by a valid LDAP
user -->
<property
name="group-member-set"><![CDATA[<D:href xmlns:D='DAV:'>
/users/rootUser
</D:href>]]></property>
Dans l'ordre d'apparition :
+ Configuration des filtres (Routage, LDAP, CAS, TRUSTED, Redirection) - voir la spécification à ce sujet.
<filter>
<filter>
<filter-name>authenticationRouter</filter-name>
<filter-class>org.esupportail.filter.authenticationRouter.AuthenticationRouter</filter-class>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.filterList</param-name>
<param-value>LDAP TRUSTED CAS</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.defaultAuthenticationFilter</param-name>
<param-value>TRUSTED</param-value>
</init-param>
<!-- LDAP -->
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.allowClientIPLDAP</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.useSecureRequestLDAP</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.agentLDAP</param-name>
<param-value>(.*)mozilla(.*)</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.httpRequestParameterLDAP</param-name>
<param-value>(.*)filter=ldap(.*)</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.destinationHostLDAP</param-name>
<param-value>(.*)univ-rennes1.fr(.*) (.*)localhost(.*)</param-value>
</init-param>
<!-- TRUSTED -->
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.allowClientIPTRUSTED</param-name>
<param-value>199.31.199.124 127.0.0.1</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.useSecureRequestTRUSTED</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.agentTRUSTED</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.httpRequestParameterTRUSTED</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.destinationHostTRUSTED</param-name>
<param-value></param-value>
</init-param>
<!-- CAS -->
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.allowClientIPCAS</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.useSecureRequestCAS</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.agentCAS</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.httpRequestParameterCAS</param-name>
<param-value>(.*)filter=cas(.*)</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.authenticationRouter.destinationHostCAS</param-name>
<param-value></param-value>
</init-param>
</filter>
<filter>
<filter-name>LDAP</filter-name>
<filter-class>org.esupportail.filter.LDAPFilter.LDAPFilter</filter-class>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.connectionURL</param-name>
<param-value>ldap://ldap.univ.fr:389</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.alternateURL</param-name>
<param-value>ldap://ldap.univ.fr:389</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.bindType</param-name>
<param-value>SEARCHBIND</param-value> <!-- SEARCHBIND | FASTBIND -->
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.fastBindUserPattern</param-name>
<param-value>uid={0},ou=people,dc=univ,dc=fr</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.searchBindConnectionName</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.searchBindConnectionPassword</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.searchBindBaseDN</param-name>
<param-value>ou=people,dc=univ,dc=fr</param-value>
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.searchBindScope</param-name>
<param-value>SUBTREE</param-value> <!-- BASE | SUBTREE | ONE -->
</init-param>
<init-param>
<param-name>org.esupportail.filter.LDAPFilter.searchBindFilter</param-name>
<param-value>uid={0}</param-value>
</init-param>
</filter>
<filter>
<filter-name>TRUSTED</filter-name>
<filter-class>org.esupportail.filter.trustedFilter.TrustedFilter</filter-class>
<init-param>
<param-name>org.esupportail.filter.trustedFilter.trustedPassword</param-name>
<param-value>trustedPassword</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>http://cas.univ.fr/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://cas.univ.fr/validate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serviceUrl</param-name>
<param-value>https://cas.univ.fr/serviceValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.authorizedProxy</param-name>
<param-value>https://cas.univ.fr/proxy</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.renew</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>http://mySlideServer:8080</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.wrapRequest</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-name>redirectionFilter</filter-name>
<filter-class>org.esupportail.filter.redirectionFilter.RedirectionFilter</filter-class>
<init-param>
<param-name>hashType</param-name>
<param-value>with_hash_reverse</param-value> <!-- with_hash | with_hash_reverse -->
</init-param>
<init-param>
<param-name>homedirsRootDirectory</param-name>
<param-value>files</param-value>
</init-param>
<init-param>
<param-name>forwardMethod</param-name>
<param-value>direct</param-value>
</init-param>
</filter>
Il est impératif dans un premier temps que le filtre TRUSTED soit automatiquement sélectionné par le filtre de routage (configurer ce dernier en conséquent).
Ceci peut être fait :
La routine de création des homedir utilise le filtre TRUSTED pour s'authentifier, si un autre filtre est sélectionné, la routine ne peut pas fonctionner.
Dans l'ordre d'apparition :
+ paramètres d'appel de la routine
#-all > permet de créer
tous les homedirs depuis un annuaire LDAP
#-user username > permet de créer le homedir de l'utilisateur
username
main.arg1=-all
main.arg2=bidon
Attention : Les noms d'utilisateur ne peuvent pas contenir d'espaces ou caractères spéciaux.
Ce fichier permet de spécifier :
> Les paramètres de l'annuaire LDAP permettant de
générer les homedirs.
> Les paramètres du serveur WebDAV précedement
installé.
Les paramètres suivi d'un *** sont des paramètres par défaut et il n'est pas nécessaire de les modifier immédiatement pour faire fonctionner le serveur.
Dans l'ordre d'apparition :
<ldapDirectory
<!-- LDAP URL -->
ldapUrl="myLDAPServerURL"
<!-- LDAP port -->
port="389"
<!-- LDAP baseDN -->
baseDn="ou=people,dc=univ,dc=fr"<!-- LDAP scope : SUBTREE
| ONE | BASE --> scope="SUBTREE"
<!-- LDAP filter - ex :
(&(uid=55*)(compte=on)) -->
filter="(uid=*)"
<!-- attribut unique de l'annuaire LDAP
utilisé pour générer les utilisateurs -->
userUidAttribut="uid"<!-- nombre maximum de résultats
retourné par l'annuaire LDAP (pour tests) - 0 = pas de limite
--> maxResults="0"
/>
Utiliser les codes ASCII dans le filtre sous la forme
&#codeAscii;
Exemple:
filter="(&((ur1etatcompte=on)(ur1TypeEntree=etu)))"
<webdavServer
<!-- URL serveur WebDAV -->
url="http://myWDServer:8080/slide"
<!-- login administrateur de connexion
au serveur WebDAV -->
login="rootUser"
<!-- password administrateur de
connexion au serveur WebDAV -->
password="trustedPassword"
usersRole="user"
/>
<directoriesStructure
<!-- répertoire de stockage des
homedirs -->
rootDirectory="files/esup/storage/users"
hashType="with_hash_reverse"
/>
<usersDirectory
rootDirectory="users"
/>
<rolesDirectory
rootDirectory="roles"
/>
1. le "rootUser" spécifié dans le fichier /perso/slide/Domain.xml :
<!-- replace rootUser by a valid LDAP user
-->
<property
name="group-member-set"><![CDATA[<D:href xmlns:D='DAV:'>
/users/rootUser
</D:href>]]></property>
doit être identique à celui du fichier /perso/admin-tools/HomeDirCreation/properties/config.xml :
<!-- login administrateur de connexion au
serveur WebDAV -->
login="rootUser"
2. le "trustedPassword" spécifié dans le fichier /perso/slide/WEB-INF/web.xml :
<init-param>
<param-name>org.esupportail.filter.trustedFilter.trustedPassword</param-name>
<param-value>trustedPassword</param-value>
</init-param>
doit être identique à celui spécifié dans le fichier /perso/admin-tools/HomeDirCreation/properties/config.xml :
<!-- password administrateur de connexion
au serveur WebDAV -->
password="trustedPassword"
3. le "homedirsRootDirectory" spécifié dans le fichier /perso/slide/WEB-INF/web.xml :
<init-param>
<param-name>homedirsRootDirectory</param-name>
<param-value>files</param-value>
</init-param>
doit être identique à celui spécifié dans le fichier /perso/admin-tools/HomeDirCreation/properties/config.xml :
<!-- répertoire de stockage des
homedirs -->
rootDirectory="files"
Ce fichier se trouve à la racine du package.
#Nom de l'application - non utilisé pour le moment
#Version de l'application
#app.name.home=esup-serveur-WebDav
app.version=2.01-RC-1#Nom de distribution de l'application
#
app.name.deploy=esup-serveur-WebDav
#
#==================== Les répertoires ========================
#
##Répertoire de déploiement
deploy.home = C:/esup-serveur-WebDav-2#Java Home
java_home = C:/j2sdk1.4.2_0
Version de l'application : sert uniquement pour construire un zip du package
Nom de distribution de l'application : sert uniquement pour construire un zip du package
Répertoire de déploiement : répertoire de déploiement (d'installation) du serveur WebDAV V2
Java home : sert à démarrer le serveur WebDAV V2
Il est possible d'utiliser un autre serveur Tomcat que celui fourni dans le package. Cependant il convient de faire les modifications suivantes dans le fichier server.xml de Tomcat (les ajouts sont en rouge) :
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"/>
<Connector port="8009"
enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" URIEncoding="UTF-8"/>
Création : 28 10 2004 - Thomas Bellembois (Université de Rennes1) | |
Modifications : |