Table of Contents |
---|
Installation du Front office
L'application est disponible sur github. Il est conseillé d'utiliser git pour télécharger les sources :
Code Block |
---|
git clone https://github.com/EsupPortail/esup-smsu.git |
N'hésitez pas également à utiliser GIT en interne pour exploiter et maintenir à jour vos instances.
Vous pouvez aussi trouver des zip sur cette page : https://github.com/EsupPortail/esup-smsu/tags.
Paramétrage des propriétés de l'application
Le back office se déploie en mode servlet ou portlet.
Créez src/main/resources/properties/config.properties en s'inspirant de config.sample.properties. Si vous utilisez git pour l'exploitation et la mise à jour, il est conseillé de faire :
Code Block |
---|
ln -s config.sample.properties src/main/resources/properties/config.properties git add src/main/resources/properties/config.properties git commit -m 'utiliser config.sample.properties comme base de configuration' |
Vérifier la configuration des fichiers :
- src/main/resources/properties/config.properties
- vérifier les informations de connexion à la base de donnée
- vérifier les informations de connexion au LDAP
- vérifier l'URL d'accès au web service du portail
- vérifier l'URL d'accès au web service du back office
- vérifier le chemin d'accès au fichier libmgs.properties
- vérifiez les informations de configuration du compte de validation
- dans le cas d'un déploiement en servlet, vérifiez le paramétrage du serveur CAS
- vérifiez le paramétrage SMTP
- vérifiez le paramétrage Quartz
- de manière générale, vérifiez l'ensemble des paramètres.
- src/main/resources/properties/logging/log4j.properties
- Vérifier le chemin d'accès au fichier de log
Voici le détail des propriétés :
Paramétrage Base de donnée et Hibernate
Url, login et mot de passe d'accès à la base de donnée du front office :
Code Block hibernate.connection.jdbc.url=jdbc:mysql://<host>:3306/smsu hibernate.connection.jdbc.username=root hibernate.connection.jdbc.password=xxxx
Paramétrage Web services
Adresse web service back office :
Code Block smsuapi.ws.address=https://[Nom_De_La_Machine_Back_Office]:[Port_WebService]/
Paramétrage LDAP
Adresse, login, mot de passe et timeout (en millisecondes) du serveur LDAP :
Code Block ldap.url=ldap://localhost:389 ldap.userName=cn=sms,ou=admin,dc=univ-paris1,dc=fr ldap.password= ldap.connectTimeout=5000
La base DN du serveur LDAP :
Code Block ldap.base=dc=univ-paris1,dc=fr
Le DN sub path pour les utilisateurs :
Code Block ldap.dnSubPath=ou=people
L'identifiant d'utilisateur dans le LDAP :
Code Block ldap.uidAttribute=uid
Le nom de l'attribut qui caractérise le nom « d'affichage de l'utilisateur » (généralement son nom et prénom concaténé dans un attribut LDAP) :
Code Block ldap.displayNameAttribute=displayName
Le nom de l'attribut qui contient le prénom de l'utilisateur :
Code Block ldap.firstNameAttribute=givenName
Le nom de l'attribut qui contient le nom de famille de l'utilisateur :
Code Block ldap.lastNameAttribute=sn
Le nom de l'attribut qui contient l'adresse email de l'utilisateur :
Code Block ldap.emailAttribute=mail
Le nom de l'attribut qui contient le numéro de téléphone portable de l'utilisateur :
Code Block ldap.pagerAttribute=pager
Le nom de l'attribut qui contient la liste des conditions d'utilisation qui ont été acceptées par l'utilisateur :
Code Block ldap.termsOfUseAttribute=up1TermsOfUse
La valeur qui préfixera les valeurs stockées dans le LDAP à l'attribut défini par ldap.termsOfUseAttribute :
Code Block ldap.termsOfUseAttributeEtiquetteSMSU={SMSU}
Ce préfixe à la mode SUPANN permet de partager l'attribut défini par ldap.termsOfUseAttribute avec d'autres applications. Le service SMS-U gardera inchangé les valeurs ne commençant pas par ce préfixe.
La valeur qui sera stockée dans le LDAP à l'attribut défini par ldap.termsOfUseAttribute lorsque l'utilisateur accepte les conditions générales :
Code Block ldap.key.cg=CG
NB : cette valeur sera préfixée de la valeur défini par ldap.termsOfUseAttributeEtiquetteSMSU
Le nom de l'attribut sur lequel sont effectuées les recherches d'utilisateurs par nom :
Code Block ldap.searchAttribute=cn
L'expression permettant d'effectuer des tests :
Code Block ldap.testFilter=cn=*aaron*
Ce paramètre défini l'expression qui sera utilisé pour tester le LDAP par le biais des taches ant livrées par esup-commons
Le nom de l'object dont se sert le serveur LDAP pour définir un utilisateur :
Code Block ldap.objectClass=Person
Le DN sub path permettant de caractériser les groupes :
Code Block ldap.group.dnSubPath=ou=groups
Le nom de l'attribut utilisé comme identifiant pour les groupes :
Code Block ldap.group.idAttribute=cn
Le nom de l'attribut qui contient la liste des membres d'un groupe :
Code Block ldap.group.groupMemberAttr=member
Le nom de l'attribut utilisé lors des recherches par nom sur les groupes :
Code Block ldap.group.groupSearchAttr=description
Le nom de l'attribut affiché lors des recherches par nom sur les groupes :
Code Block ldap.group.groupSearchDisplayedAttr=description
Le nom de l'attribut utilisé pour affiché le nom d'un groupe :
Code Block ldap.group.nameAttr=description
NB : supprimé dans esup-smsu 1.1.2
Le nom de l'object dont se sert le serveur LDAP pour définir un groupe :
Code Block ldap.group.groupObjectClass=groupOfNames
L'expression permettant d'effectuer des tests sur les groupes :
Code Block ldap.group.testFilter=cn=*mati*
Ce paramètre défini l'expression qui sera utilisé pour tester le LDAP par le biais des taches ant livrées par esup-commons
Paramétrage adhésion
Expression régulière de validation de la forme du numéro de téléphone d'un adhérent :
Code Block adhesion.phoneNumberPattern=(06|07)[0-9]{8}
(10 chiffres commençant par 06)
Ce paramètre peut être vidé (pas de vérification du tout)Activation/Désactivation de la validation par SMS du numéro de téléphone d'un adhérent :
Code Block adhesion.activateValidation=false
Nombre maximum utilisé dans la génération des codes de validation :
Code Block adhesion.maxNumberCodeValidation=100000
Compte d'imputation des messages de validation :
Code Block adhesion.accountValidation=[compte_de_validation]
Rôle associé au compte de validation (non utilisé, présent pour la cohérence des données en base :
Code Block adhesion.roleValidation=[role_compte_validation]
Titre du SMS de validation (corps du message envoyé) :
Code Block adhesion.titleSmsValidation=[Titre_SMS_valdidation]
Liste des champs LDAP pouvant contenir une valeur par défaut de numéro de téléphone adhérent :
Code Block adhesion.phoneNumberAttributes=homePhone,mobile
Les champs sont séparés par une virgule.
préfixe de numéro de téléphone à retirer :
Code Block adhesion.phoneNumberPrefixToRemove=\\+33
Ce préfixe sera remplacé par un zéro.
Paramétrage destinataires
Expression régulière de validation de la forme du numéro de téléphone d'un adhérent :
Code Block recipient.phoneNumberPattern=(06|07)[0-9]{8}
(10 chiffres commençant par 06.
Ce paramètre peut être vidé (pas de vérification du tout)
Paramétrage envoi de SMS
Compte par défaut d'envoi de SMS :
Code Block sms.defaultAccount=defaut
Login du superviseur par défaut :
Code Block sms.defaultSupervisorLogin=admin
Paramétrage authentification
URL serveur CAS :
Code Block cas.url=https://[Nom_De_La_Machine_Cas]:[Port_Cas]/cas
nom de la machine et port pour accéder au front-office :
Code Block tomcat.host=localhost tomcat.port.string=:8080
Paramétrage SMTP
L'adresse du serveur SMTP à utiliser :
Code Block smtp.host=an.smtp.host
Ce paramètre défini l'adresse du serveur SMTP qui sera utilisé par le front office pour envoyer les emails
Le port du serveur SMTP à utiliser :
Code Block smtp.port=25
Ce paramètre défini le port du serveur SMTP qui sera utilisé par le front office pour envoyer les emails
Le login a utiliser pour s'authentifier auprès du serveur SMTP :
Code Block smtp.user=
Ce paramètre défini le login a utiliser pour s'authentifier auprès du serveur SMTP qui sera utilisé par le front office pour envoyer les emails
Le mot de passe a utiliser pour s'authentifier auprès du serveur SMTP :
Code Block smtp.password=
Ce paramètre défini le mot de passe a utiliser pour s'authentifier auprès du serveur SMTP qui sera utilisé par le front office pour envoyer les emails
L'adresse email qui sera utilisée pour envoyer les emails:
Code Block smtp.fromEmail=example@domain.org
Ce paramètre défini l'adresse email qui sera utiliser pour envoyer les emails
Le nom qui apparaitra dans les emails :
Code Block smtp.fromName=Name firstName
Ce paramètre défini le nom qui apparaitra comme expéditeur des emails envoyés par le front office.
Paramétrage des purges
Purge de la base des utilisateurs en attente de validation de numéro de téléphone :
Code Block purge.pendingMember.seniorityDay=30
purge de la base des messages :
Code Block purge.periodic.seniorityDay=120
Paramétrage des traitements asynchrones
La cron expression utilisée par la tache de supervision d'envoi des sms :
Code Block quartz.superviseSmsSendingTrigger.cronExpression= 0 0 * * * ?
NB : cette tache cron n'est plus vraiment utile.
Ce paramètre défini l'expression cron qui est utilisée pour planifier la tache qui supervise l'envoi des SMS au back office.La cron expression utilisée par la tache de purge des utilisateurs en attente de validation de numéro de téléphone :
Code Block quartz.purgePendingMemberTrigger.cronExpression=0 0 3 1 * ?
La cron expression utilisée par la tache de purge des messages :
Code Block quartz.periodicPurgeTrigger.cronExpression=0 0 3 2 * ?
La cron expression utilisée par la tache d'envoi de mail aux utilisateurs dont le numéro de téléphone est en erreur :
Code Block quartz.notificationByMailForInvalidPhoneTrigger.cronExpression=0 0 12 ? * MON
Test de connexion back office
Test de connexion avec le back office. En cas de succès, le nom de l'application cliente lue dans le certificat est retourné :
Code Block welcome.isConnexionTested=false
Création de la base de donnée
Le back office nécessite un serveur de base de donnée MySQL en version 5.
Création du schéma en base de donnée
Pour créer le schéma de base de donnée : se connecter au serveur mysql en tant qu'administrateur et saisir le mot de passe
Code Block |
---|
mysql -u root -p -e "create database smsu" mysql -u root -p smsu < src/main/resources/database/create_tables.sql mysql -u root -p smsu < src/main/resources/database/create_qrtz_tables_esup-smsu.sql |
Nb : Aucune table ne doit être présente dans le schéma smsuapi au moment de l'exécution de cette commande sous peine d'échec.
Initialisation des tables en base de données
Il faut premièrement configurer le compte par défaut ainsi que le premier super administrateur. Pour ce faire, éditer le fichier «src/main/resources/database/populate_tables_esup-smsu.sql», puis modifier les lignes suivantes
Code Block |
---|
INSERT INTO account VALUES (1, "default account"); |
Il faut remplacer la valeur "default account" par le nom du compte par défaut (défini dans le fichier de configuration config.properties par la clef sms.defaultAccount
Code Block |
---|
INSERT INTO customized_group VALUES (1, 1, 1, "admin", 1, 1, 1); |
Il faut remplacer la valeur "admin" par le login de la personne qui sera administrateur.
Puis faire :
Code Block |
---|
mysql -u root -p < src/main/resources/database/populate_tables_esup-smsu.sql |
Vérification des tables en base de données
Pour vérifier que les étapes précédentes se sont correctement déroulées : se connecter à la base de donnée et saisir le mot de passe :
Code Block |
---|
mysql -u root -p -e "show tables" smsu |
La liste des tables doit apparaître de la manière suivante :
Code Block |
---|
+--------------------------+ | Tables_in_smsu | +--------------------------+ | QRTZ_BLOB_TRIGGERS | | QRTZ_CALENDARS | | QRTZ_CRON_TRIGGERS | | QRTZ_FIRED_TRIGGERS | | QRTZ_JOB_DETAILS | | QRTZ_JOB_LISTENERS | | QRTZ_LOCKS | | QRTZ_PAUSED_TRIGGER_GRPS | | QRTZ_SCHEDULER_STATE | | QRTZ_SIMPLE_TRIGGERS | | QRTZ_TRIGGERS | | QRTZ_TRIGGER_LISTENERS | | account | | b_vers_mana | | basic_group | | customized_group | | fonction | | mail | | mail_recipient | | message | | pending_member | | person | | recipient | | role | | role_composition | | service | | supervisor | | supervisor_sender | | template | | to_mail_recipient | | to_recipient | +--------------------------+ |
Lancement simple avec jetty
Code Block |
---|
mvn jetty:run # ou ant jetty.run |
Déploiement de l'application
Code Block |
---|
mvn package |
puis copiez le war dans webapps (servlet) ou utilisez de commande uPortal "ant deployPortletApp".
ou si vous préférez vous pouvez utiliser ant en configurant préalablement le chemin de déploiement dans build.properties
Code Block |
---|
ant deploy |
Ajouter l'application dans le contexte du serveur du portail, par exemple par le biais du fichier conf/Catalina/localhost/esup-smsu.xml
Code Block |
---|
<Context docBase="/usr/local/esup-smsuapi/tomcat/webapps/esup-smsu" > <Resource name="jdbc/esup-smsu" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/smsu" username="xxx" password="xxx" maxActive="100" maxWait="10000" validationQuery="select 1" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" /> </Context> |
(le contexte peut aussi être configuré dans le fichier tomcat conf/server.xml)
Intégration de la portlet au portail
La portlet du front office se déploie par le biais du gestionnaire de canaux.
La configuration utilisée est la suivante :