Configuration » History » Version 5

« Previous - Version 5/11 (diff) - Next » - Current version
Jérôme TRUFFOT, 09/16/2009 03:22 PM


Configuration

Retour à la racine du manuel d'administration.

Préambule

Les fichiers de configuration sont situés dans le dossier properties, répartis par domaine. Toutefois, le fichier properties/config.properties concentre les principaux paramètres. La modification de ce seul fichier doit suffire dans la majorité des cas.

Pour répondre à des besoins particuliers, il est possible de modifier les autres fichiers. Afin de répercuter ces modifications d'une version à une autre, il faut renseigner les fichiers modifiés dans le paramètre custom.recover.files du fichier build.properties.

Accès aux bases de données

Base de données de l'application

Une base de données est utilisée pour stocker des informations relatives à l'application seule (donc indépendante de GEISHA) tels que des préférences des utilisateurs, les droits d'administration, etc... Par défaut, l'application dispose de connecteurs MySql et Oracle. Avec MySql, la base doit être de type InnoDB.

La tâche ant init-data crée toutes les structures (tables) de la base de données mais la base doit exister. L'administrateur a la charge de créer cette base et de s'assurer que l'utilisateur a les droits d'accès nécessaires.

JDBC. L'accès à la base de données peut être géré directement par l'application. Indiquer pour cela l'*url* d'accès à la base ainsi que le username et le password pour l'authentification.

hibernate.connection.jdbc.url=jdbc:mysql://localhost/esup_geisha
hibernate.connection.jdbc.username=admin
hibernate.connection.jdbc.password=secret

JNDI. L'accès à la base de données peut également être géré par le serveur Tomcat. Indiquer pour cela le nom du pool de connexion utilisé (datasource). L'utilisation du JNDI est recommandé en production pour des raisons de performance. Il permet de plus aux administrateurs de surveiller la charge liée aux accès à la base de données avec des outils tels que LambdaProbe.

hibernate.useJndi=true
hibernate.connection.jndi.datasource=jdbc/esup_geisha

Configurer également le pool de connexion Tomcat dans le contexte de l'application :

<Resource
    name="jdbc/esup_geisha" 
    auth="Container" 
    type="javax.sql.DataSource" 
    username="admin" password="secret" 
    driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost/esup_geisha" 
    maxActive="100" maxIdle="10" maxWait="10000" 
    removeAbandoned="true" removeAbandonedTimeout="60" 
    logAbandoned="true" />

GEISHA

La configuration à la base GEISHA se fait de la même manière, pour un connecteur oracle.

hibernate.geisha.connection.jdbc.url=jdbc:oracle:thin:@localhost:port:SID
hibernate.geisha.connection.jdbc.username=admin
hibernate.geisha.connection.jdbc.password=secret

hibernate.geisha.useJndi=false
hibernate.geisha.connection.jndi.datasource=jdbc/geisha

Si le driver oracle est correctement installé, l'utilisation du JNDI est possible en configurant le pool de connexion Tomcat dans le contexte de l'application.

<Resource
    name="jdbc/geisha" 
    auth="Container" 
    type="javax.sql.DataSource" 
    username="admin" password="secret" 
    driverClassName="oracle.jdbc.driver.OracleDriver" 
    url="jdbc:oracle:thin:@localhost:port:SID" 
    maxActive="100" maxIdle="10" maxWait="10000" 
    removeAbandoned="true" removeAbandonedTimeout="60" 
    logAbandoned="true" />

Connecteur JDBC

Esup-Geisha embarque par défaut un connecteur MySql et un connecteur Oracle pour Java. Pour utiliser un autre connecteur :

  • ajouter le connecteur (fichier jar) dans le dossier webapps/WEB-INF/lib,
  • pour assurer la récupération de ce fichier lors d'un changement de version de l'application, renseigner ce fichier dans le paramètre custom.recover.files du fichier build.properties,
  • surcharger les paramètres indiquant le driver JDBC et le dialect Hibernate à utiliser :
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

ou pour la base GEISHA,

hibernate.geisha.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.geisha.dialect=org.hibernate.dialect.Oracle10gDialect

Par exemple, pour une base Postgresql (version jdbc3) :

hibernate.connection.driver_class=org.postgresql.Driver
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

Adapter également l'url d'accès à la base :

hibernate.connection.jdbc.url=jdbc:postgresql://localhost:5432/esup_geisha

Authentification

En mode servlet ou quick-start, l'authentification se fait via un serveur CAS:http://www.jasig.org/cas.

cas.url=https://cas.domain.edu

En mode portlet, l'authentification se fait via le portail. L'identifiant de l'utilisateur est récupéré de l'attribut auth.portal.uidAttribute défini par défaut à "uid".

auth.portal.uidAttribute=uid

Initialisation

La tâche ant init-data initialise les données en enregistrant un administrateur de l'application dans la table des utilisateurs. Renseigner son identifiant LDAP dans le paramètre suivant :

init.firstAdministratorId=paubry

Annuaire LDAP

La configuration de l'annuaire LDAP, d'où seront récupérées les informations sur les utilisateurs, se fait classiquement en indiquant l'*url* d'accès au LDAP ainsi que d'éventuels username et password pour l'authentification (laisser vide pour un accès anonyme).

ldap.url=ldap://ldap.domain.edu:389
ldap.userName=
ldap.password=

Préciser également la base et le chemin d'accès au répertoire des utilisateurs.

ldap.base=dc=domain,dc=edu
ldap.dnSubPath=ou=people

Indiquer ensuite les attributs du LDAP renseignant l'*identifiant LDAP*, le nom à afficher, l'adresse e-mail et l'*identifiant Harpège* de l'utilisateur.

ldap.uidAttribute=uid
ldap.displayNameAttribute=displayName
ldap.emailAttribute=mail
ldap.geishaIdAttribute=supannEmpId

Enfin, pour une éventuelle recherche d'utilisateur, vous pouvez préciser l'attribut sur lequel portera la recherche (searchAttribute) ainsi que les attributs qui seront affichés dans le résultat de la recherche (searchDisplayedAttributes).

Indiquer dans la liste des attributs (ldap.attributes) tous les attributs qui doivent être récupérer du LDAP, donc en particulier les attributs renseignés dans les paramètres précédents.


ldap.searchAttribute=cn
ldap.attributes=cn,displayName,employeeType,department,homeDirectory,supannEmpId
ldap.searchDisplayedAttributes=cn,displayName,employeeType,department

Vous pouvez votre configuration de l'accès à l'annuaire LDAP en utilisant la tâche ant test-ldap.

Envoi de mail

Configurer l'accès au serveur SMTP en précisant le host et le port (25 par défaut). Si l'envoie de mail nécessite une authentification, préciser un login et un mot de passe, sinon laisser vide.

smtp.host=smtp.domain.edu
smtp.port=25
smtp.user=
smtp.password=

L'encodage des mails est défini par défaut à "utf-8" mais vous pouvez changer cette valeur. Précisez également l'adresse e-mail ainsi que le nom qui apparaitront comme expéditeur des e-mails envoyés.

smtp.charset=utf-8
smtp.fromEmail=esup-geisha@domain.edu
smtp.fromName=ESUP-Portail Geisha Web

Lorsque vous testez l'application, il est conseillé d'intercepter les e-mails pour ne pas spammer les utilisateurs. Par défaut, le bean activant cette interception est smtpIntercept. Préciser alors l'adresse mail et le nom du destinataire qui recevra ces e-mails interceptés (le destinataire originale est indiqué dans le mail envoyé).

smtp.interceptBean=smtpIntercept
smtp.interceptEmail=maintainer@domain.edu
smtp.interceptName=Maintainer

En production, définissez cette propriété à null pour désactiver l'interception des e-mails (commenter la ligne ne suffit pas).

smtp.interceptBean=null

Vous pouvez tester votre configuration pour l'accès au serveur SMTP en utilisant la tâche ant test-smtp. Préciser pour cela l'adresse et le nom du destinataire de l'e-mail envoyé durant ce test.

smtp.testEmail=maintainer@domain.edu
smtp.testName=Maintainer

Messages d'erreur

Si des erreurs inattendues interviennent durant l'utilisation de l'application, un rapport d'exception est présenté à l'utilisateur. Ce rapport est également enregistré dans le fichier de log. Pour être prévenu automatiquement de cette erreur, vous pouvez recevoir ce rapport par e-mail. Pour cela, indiquez l'*adresse* du destinataire de ces rapports d'exception. Laissez vide pour ne pas recevoir ces rapports.

exceptionHandling.email=maintainer@domain.edu

Fuseau horaire

Indiquer le fuseau horaire utilisé sur de votre serveur.

timezone=Europe/Paris

Gestion des logs

La gestion des logs se fait via la librairie log4j. Les principaux paramètres sont :

  • le niveau des logs enregistrés,
  • la sortie utilisée : par exemple, stdout pour la sortie standard, file pour un fichier,
  • le patern des enregistrements.
log.level=WARN
log.output=stdout
log.pattern=%d %p [%c] - %m%n
Si vous souhaitez enregistrer les logs dans un fichier, certaines valeurs sont définies par défaut :
  • le fichier utilisé (chemin + nom),
  • la taille maximale du fichier,
  • le nombre maximum d'archives conservées.
log.file=esup-geisha.log
log.maxFileSize=5MB
log.maxBackupIndex=3

Gestion du cache

Les fichiers utilisés par le cache sont stockés dans le dossier défini par le paramètre cache.path. Les noms des fichiers peuvent ne pas être spécifique à l'application. Il est donc conseillé d'indiquer un chemin particulier pour l'application afin d'éviter d'éventuels conflit au niveau du cache, notamment avec d'autres applications basées sur le framework esup-commons.

cache.path=/tmp/esup-geisha/cache