# Apache Tomcat

La valve Tomcat est uniquement disponible pour les versions 5.5 et supérieures de Tomcat.

## Présentation

Apache Tomcat est une implémentation libre des technologies Java Servlet et JavaServer Pages.

Comme conteneur de servlet J2EE, Tomcat fournit les fonctionnalités de sécurité standards, telles l'authentification : une application déployée dans Tomcat peut déléguer son authentification à Tomcat.

Par défaut, Tomcat fournit un fichier nommé `users.xml` pour gérer l'authentification :

    <tomcat-users>
      <role rolename="tomcat"/>
      <role rolename="role1"/>
      <user username="tomcat" password="tomcat" roles="tomcat"/>
      <user username="role1" password="tomcat" roles="role1"/>
      <user username="both" password="tomcat" roles="tomcat,role1"/>
    </tomcat-users>

LL::NG fournit une valve, disponible sur page de téléchargement. Cette valve examine les en-têtes HTTP pour désigner l'utilisateur authentifié au conteneur J2EE.

## Installation

Copier `ValveLemonLDAPNG.jar` dans `<TOMCAT_HOME>/server/lib`:

    cp ValveLemonLDAPNG.jar server/lib/

Si besoin, recompiler la valve depuis les sources.

## Configuration

Ajouter dans le fichier `server.xml` une nouvelle valve comme ci-dessous (dans la section host):

    <Valve className="org.lemonLDAPNG.SSOValve" userKey="AUTH-USER" roleKey="AUTH-ROLE" roleSeparator="," allows="127.0.0.1"/>

Configurer les attributs :

- userKey : nom de l'en-tête HTTP contenant le nom d'utilisateur.
- roleKey : nom de l'en-tête HTTP contenant les rôles. Si LL::NG envoie les rôles séparés par des caractères (virgule,...), configurer roleSeparator.
- roleSeparator (optionnel) : séparateur des valeurs de rôle.
- allows (optionnel) : Definit les adresses IP autorisées (ustiliser le séparateur ”,” pour de multiples IP). Indiquer seulement l'adresse IP du handler LL::NG dans cet attribut pour ajouter plus de sécurité. Si cet attribut est manquant, toutes les adresses seront autorisées.
- passThrough (optionnel) : Autorise ou non l'accès anonyme. Lorsqu'il est à “false”, les en-têtes HTTP doivent être renseignés par <a2>LL::NG</a2> pour valider l'authentification. Donc, si l'utilisateur n'est pas reconnu ou si l'en-tête HTTP n'est pas présent, une erreur 403 est retournée.

Pour le debogage, cette valve peut tracer quelques information utiliser. Voir how configure logging in Tomcat .

## Compilation

Les sources sont disponibles sur la page de téléchargement.

Requis :

- ant
- jre > 1.4
- tomcat >= 5.5

Configurer votre tomcat home dans le fichier `build.properties`.

Attention avec les systèmes Windows, le séparateur de répertoire est le ”/”. Exemple :

    c:/my hardisk/tomcat/

Lancer ensuite la commande ant :

    ant

`ValveLemonLDAPNG.jar` est créé dans le répertoire `/dist`.