Tomcat

Un article de Agora2ia.


tomcat.gif


Sommaire

Présentation

Le site officiel : http://jakarta.apache.org/tomcat/


Tomcat est un serveur d'applications Java.


Le rôle du serveur d'applications, est double. Il doit savoir exécuter des applications web pour répondre aux requêtes entrantes. Cela passe par des procédures de chargement de classes (nous sommes en Java), d'invocation dynamique... Il doit également être capable de convertir une requête en objet Java, pour qu'elle soit exploitable par l'application. Et, en retour, savoir convertir l'objet Java contenant la réponse générée, en réponse compréhensible par le serveur web. Ces objets Java sont régis par une API, qui répond aux spécifications Servlet officielles. On comprend dès lors qu'un serveur d'applications est subordonné à un langage. Hormis le concept, le serveur d'applications PHP n'a rien à voir avec un serveur d'applications Java !

Le coeur d'un serveur d'applications Java est le conteneur de servlets, puisque les servlets sont les éléments essentiels d'une application web écrite en Java (elles reçoivent les requêtes et renvoient les réponses). Le conteneur de servlets gère des servlets (sait où se trouvent physiquement les classes Java, pour quelles URL les appeler...), et les exécute lorsqu'elles sont demandées.


Depuis les versions 5 de Tomcat, le JDK 1.5 est nécéssaire. Pour continuer d'utiliser le JDK 1.4 il faudra télécharger un module supplémentaire disponible dans la partie téléchargement du site.


Voir aussi : Tomcat, guide de démarrage


Sécurité et Realm

A Realm is a "database" of usernames and passwords that identify valid users of a web application (or set of web applications), plus an enumeration of the list of roles associated with each valid user. You can think of roles as similar to groups in Unix-like operating systems, because access to specific web application resources is granted to all users possessing a particular role (rather than enumerating the list of associated usernames). A particular user can have any number of roles associated with their username.

Tips

Changer le port

Dans le fichier C:\dev\Tomcat5.5.7\conf\server.xml modifier l'entrée Server/Service/Connector@port :

<Server port="8005" shutdown="SHUTDOWN">
  ...
  <Service name="Catalina">
    ...
    <Connector
               port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    ...


Changer le répertoire webapps

Dans le même fichier C:\dev\Tomcat5.5.7\conf\server.xml modifier l'entrée Server/Service/Engine/Host@appBase :

<Server port="8005" shutdown="SHUTDOWN">
  ...
  <Service name="Catalina">
    ...
    <Engine name="Catalina" defaultHost="localhost">
      ...
      <Host name="localhost" appBase="D:/www/webapps"
          unpackWARs="true" autoDeploy="true"
          xmlValidation="false" xmlNamespaceAware="false">
    ...


Authentification LDAP

Voir aussi :


Compléter la balise Server/Service/Engine dans le fichier CATALINA_HOME/conf/server.xml comme suit :

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
   connectionURL="ldap://my.server.com:390"
   userBase="ou=internal,ou=People,dc=imd,dc=ch"
   userSearch="(uid={0})"
   userSubtree="false"
   roleBase="ou=MyApplication,ou=Systems,dc=my,dc=server,dc=com"
   roleName="cn"
   roleSearch="(uniqueMember={0})"
   connectionName="uid=MyApplicationSearcher,ou=ServiceAccounts,ou=People,dc=my,dc=server,dc=com"
   connectionPassword="MyPassword"
/>

Compléter la balise web-app/security-constraint dans le fichier web.xml de votre webApp comme suit :

<auth-constraint>
   <description>These roles are allowed access</description>
   <role-name>Owners</role-name>
</auth-constraint>

Ajouter également le bout de code suivant juste avant la balise de fermeture </web-app> :

<login-config>
   <auth-method>FORM</auth-method>
   <realm-name>YourWebApp Protected Area</realm-name>
   <form-login-config>
      <form-login-page>/login.html</form-login-page>
      <form-error-page>/autherr.html</form-error-page>
   </form-login-config>
</login-config>

<security-role>
   <description>Only 'tomcat' role is allowed to access this web application</description>
   <role-name>Owners</role-name>
</security-role>


Ainsi, tout membre du rôle "Owners" dans votre référentiel LDAP (sous répertoire du répertoire "MyApplication") sera autorisé à entrer dans votre serveur (balise "Engine" dans le server.xml).

Ressources