# ZOS: Installer Apache Tomcat {{INLINETOC}} ## Installation de Tomcat * Télécharger le package binaire Core `apache-tomcat-x.x.x.zip` sur tomcat.apache.org. * Télécharger les fichiers zip dans le répertoire d'installation de Tomcat au sein des services système UNIX sur le système z/OS cible. Le répertoire d'installation de Tomcat doit avoir une taille d'au moins 36 Mo. Par conséquent, le jeu de données de montage d'hébergement doit avoir le nombre correspondant de cylindres. * Se donnecter aux services système UNIX et décompresser le fichier zip (Cela créera un sous-répertoire "apache-tomcat-x.x.x"): ``` jar -xvf apache-tomcat-x.x.x.zip ``` * S'assurer que ces variables d'environnements `CATALINA_HOME=tomcat_directory/apache-tomcat-x.x.x` et `_BPXK_AUTOCVT=ON` sont définies. (Remplacer tomcat\_directory par le répertoire d'installation Tomcat actuel et x.x.x par la version actuelle de Tomcat.) On peut définir ces paramètres à l'aide des instructions "export" appropriées dans les répertoires `$HOME/.profile` ou `/etc/profile`. Par exemple: ``` export CATALINA_HOME=$HOME/tomcat/apache-tomcat-5.5.x export _BPXK_AUTOCVT=ON ``` * Vérifier également que la variable `$JAVA_HOME` soient définies sur le répertoire de base Java actuel et que la variable `$PATH` contient `$JAVA_HOME/bin`. `$LIBPATH` doit contenir `$JAVA_HOME/bin` et `$JAVA_HOME/bin/classic`. * Pour que les fichiers de script Tomcat soient exécutables, les marquer comme suit: ``` chtag -t -c ISO8859-1 $ CATALINA_HOME/bin/*.sh ``` Le service Web DFSMSrmm utilise une DLL C++ à partir de la liste de liens z/OS. L'objet programme s'appelle `EDGXHCLL`. Pour rendre cette DLL disponible pour le service Web DFSMSrmm, installer un lien dans le chemin de la bibliothèque de systèmes `$LIB_PATH`. Accéder au chemin de la bibliothèque dans le système de fichiers, par exemple: aller dans `/usr/lib`, puis taper `ln -e EDGXHCLL libEDGXHCLL.so`. Cette étape établit un lien externe vers la DLL dans `LINKLST`. ## Exécution en tant que tâche démarrée (STC) Exemple STC proc: ``` //TOMCAT PROC ID='00',ACTION='run',JMXPORT='5001' //*---------------------------------------------------------------- //TOMCAT EXEC PGM=BPXBATCH,REGION=1000M,TIME=NOLIMIT,MEMLIMIT=2000M, // PARM='SH /usr/local/sys2/bin/tomcat.sh &ID &ACTION &JMXPORT' //STDOUT DD SYSOUT=*,RECFM=VB,LRECL=1024,HOLD=YES //STDERR DD SYSOUT=*,RECFM=VB,LRECL=1024,HOLD=YES ``` Cela peut être démarré avec les commandes de l'opérateur suivantes: ``` S tomct,jobname=tomcat00,ID=00,ACTION='run' S tomct,jobname=tomcat00,ID=00,ACTION='stop' ``` Exemple de script de démarrage: ``` #!/bin/sh # # configuration des éléments DB2 JDBC: # export LIBPATH=/usr/lpp/db2810/jcc/lib:$LIBPATH #--------------------------------------------- export ID=$1 export ACTION=$2 export JMXPORT=$3 # export CATALINA_HOME=/var/tomcat$ID export CATALINA_BASE=$CATALINA_HOME export JAVA_HOME="/usr/lpp/java/J6.0_64" #export JAVA_OPTS=" -Xmx256M -Xshareclasses:name=RaboDefaultCache,verbose,groupAccess -Xscmx100M " export JAVA_OPTS=" -Xmx256M " export CATALINA_OPTS="$CATALINA_OPTS -Djava.security.auth.login.config=/var/tomcat$ID/conf/jaas.config \ -Ddb2.jcc.propertiesFile=/var/tomcat$ID/conf/db2.jcc.properties \ -Dcom.sun.management.jmxremote.port=$JMXPORT \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=true \ -Dcom.sun.management.jmxremote.password.file=/var/tomcat$ID/conf/jmxremote.password \ -Dcom.sun.management.jmxremote.access.file=/var/tomcat$ID/conf/jmxremote.access" # umask 007 echo "Démarrer de tomcat.sh avec CATALINA_BASE=$CATALINA_BASE and ACTION=$ACTION" . $CATALINA_HOME/bin/catalina.sh $ACTION ``` ## Installation de modules web Par exemple pour installer JSPWiki le procédure est fondamentalement la même: * télécharger JSPWiki * décompresser l'archive * télécharger le binaire dans le répertoire webapp de tomcat (pas uniquement le fichier warfile!) * personnaliser `jspwiki.properties` (et éventuellement `web.xml` et `jspwiki.policy`) Le nom d'utilisateur par défaut est géré dans userdatabase.xml/groupdatabase.xml. ## Authentification (et autorisation) gérée par SAF Pour utiliser le système de sécurité SAF (RACF, ACF2, TopSecret) voici quelques options. ### Tomcat Realm Cela peut être utilisé lorsqu'on a configuré l'authentification gérée par le conteneur. * Télecharger le fichier `RACFRealm.jar` * déposer ce fichier jar dans le répertoire lib de tomcat * configurer ce qui suit (exemple) dans server.xml (**RACFRealm** remplace **UserDatabaseRealm**): ``` ``` * créer un profil de classe `EJBROLE` portant le nom `.` et autoriser les utilisateurs/roupes (ex: si tomcat fonctionne avec l'ID utilisateur `TOMCAT75`, il faut créer un profil `TOMCAT75.manager` pour l'application de gestion). * Rafraichir tomcat et lancer l'application tomcat manager. On doit être invité (authentification de base) à saisir ID utilisateur/mot de passe RACF. Pour utiliser ceci pour JSPWiki, activer simplement l'authentification gérée par conteneur dans le fichier `web.xml` et créer des profils pour les noms de rôle mentionnés dans le fichier `web.xml` de **JSPWiki** (Admin/Authentifié). Cette méthode d’authentification présente un inconvénient majeur: elle ne renvoie pas de messages d’erreur utiles. ### Connexion avec le module de connexion JAAS Le module de connexion **JAAS** est une implémentation de `javax.security.auth.spi.LoginModule`. Pour l'utiliser dans **JSPWiki**, par exemple : * télécharger le fichier racfloginmodule * déposer le dans le répertoire lib de tomcat * configurer `jspwiki.properties`: ``` jspwiki.loginModule.class = nl.rabobank.hdw.auth.login.RACFLoginModule ``` * ne pas utiliser l'authentification gérée par conteneur dans ce cas * rafraichir tomcat et se reconnecter