Prérequis : environnement technique mis en place |
La personnalisation de l'application n'est pas prévue pour cette installation (personnalisation fine du css, utilisation de beans java propres, etc..). Les étapes spécifiques à cette solution seront notées dans le reste du document.
La personnalisation de l'application est prévue pour cette installation (personnalisation fine du css, utilisation de beans java propres, etc..). Les étapes spécifiques à cette solution seront notées dans le reste du document.
Propriété | Définition | ||
---|---|---|---|
jdbc/dbMdw | Déclaration de votre base de données MySql de monDossierWeb | ||
jdbc/dbApogee | Déclaration de votre base de données Apogée (pour le requêtage direct sur la base)
| ||
clefApogeeDecryptBlob | Clé Apogée pour décrypter les Blob de la base Apogée (ex : signature certificat de scolarité) | ||
app.url | Url de l'application | ||
startServletMobile | true pour démarrer la servlet mobile, false ne proposer que la vue desktop | ||
cas.url | Url de votre service d'authentification CAS. Ex : https://auth.univ-ville.fr (l'application ajoute automatiquement /login) | ||
ldap.url ldap.userDn ldap.password ldap.uid.attribute | Informations de connexion au ldap, respectivement :
| ||
uportal.ws uportal.groupes.autorises | Configuration de l'authentification des enseignants via les groupes uPortal de l'ENT
| ||
loginApogee | Configuration de l'authentification des enseignants via la table UTILISATEUR d'Apogée
| ||
attributGroupeLdap listeGroupesLdap | Configuration de l'authentification des enseignants via des groupes LDAP
| ||
attributLdapEtudiant typeEtudiantLdap attributLdapCodEtu | Configuration de l'authentification des étudiants
| ||
sourceResultats | Source des résultats lors de l'appel aux Web Services Apogée pour récupérer les notes et résultats
| ||
productionMode | Mode production. Doit être à true | ||
enablePush webSocketPush showLoadingIndicator | Configuration du Push :
| ||
EnablePdfSecurity | Activer la sécurité sur les pdf générés par l'application (pdf encryption) | ||
mail.smtpHost mail.from mail.to mail.startDisabling mail.stopDisabling liste.erreur.a.ignorer | Paramètres pour l'envoi des mails d'erreur, respectivement :
| ||
param.elasticsearch.url param.elasticsearch.port param.elasticsearch.cluster param.elasticsearch.index param.elasticsearch.index.champrecherche param.elasticsearch.index.champcodeobjet param.elasticsearch.index.champversionobjet param.elasticsearch.index.champlibelleobjet | Configuration de la connexion a ElasticSearch
| ||
param.apogee.mail.annuaire emailConverter.implementation | Configuration de la récupération du mail de l'étudiant
| ||
codetuFromLogin.implementation loginFromCodetu.implementation
| Configuration de la récupération des identifiants Apogée d'un étudiant
| ||
etatcivil.nom.affichage | Affichage du nom des étudiants
| ||
serveurphoto.implementation | Configuration de la récupération des photos
| ||
google.analytics.account
piwik.tracker.url piwik.site.id | Configuration de la plateforme web analytics (facultatif). Google Analytics ou Piwik. Paramètres de Google Analytics, optionnel respectivement :
Paramètres de piwik, optionnel (https://fr.piwik.org/), respectivement :
|
Copier le fichier configUrlServices.sample.properties et renommer le en configUrlServices.properties puis éditer le suivant le choix de la solution dans la partie 2.1, le fichier configUrlServices.sample.properties se trouve :
Renseigner les url de vos webservices utilisés dans l'application :
# WebServices Dossier Etudiant administratifMetier.urlService=https://wsapogee.univ.fr/services/AdministratifMetier etudiantMetier.urlService=https://wsapogee.univ.fr/services/EtudiantMetier pedagogiqueMetier.urlService=https://wsapogee.univ.fr/services/PedagogiqueMetier geographieMetier.urlService=https://wsapogee.univ.fr/services/GeographieMetier # Web Services Référentiel offreFormationMetier.urlService=https://wsapogee.univ.fr/services/OffreFormationMetier # WebServices Dossier Etudiant administratifMetier.urlService.ssl=https://wsapogee.univ.fr/services/AdministratifMetier etudiantMetier.urlService.ssl=https://wsapogee.univ.fr/services/EtudiantMetier pedagogiqueMetier.urlService.ssl=https://wsapogee.univ.fr/services/PedagogiqueMetier geographieMetier.urlService.ssl=https://wsapogee.univ.fr/services/GeographieMetier # Web Services Référentiel offreFormationMetier.urlService.ssl=https://wsapogee.univ.fr/services/OffreFormationMetier #SSL WS_SSL_MODE=false; WS_KEY_STORE_PATH=C:/client_keystore WS_CERTIF_STORE_PATH=C:/client_keystore WS_KEY_PASS=password WS_KEY_TYPE=jks |
Copier le fichier apogeeRequest.sample.xml et renommer le en apogeeRequest.xml. Suivant le choix de la solution dans la partie 2.1, le fichier apogeeRequest.sample.xml se trouve :
Si besoin, renseigner dans apogeeRequest.xml les requêtes à surcharger devant être utilisées par l'application.
En laissant le fichier tel qu'il est renseigné dans apogeeRequest.sample.xml, les requêtes SQL internes à l'application seront utilisées.
Sinon, plusieurs requêtes SQL sont modifiables. Dans apogeeRequest.sample.xml se trouve un exemple des requêtes tel qu'elles sont dans le code (java) de l'application.
Vous pouvez vous inspirer de ce fichier pour modifier ces requêtes. Les requêtes renseignées dans apogeeRequest.xml seront celles qui seront utilisées par l'application.
Pour plus de précisions voir le paragraphe "Requêtes SQL" dans la partie : Personnalisation |
La base de données (qui doit être préalablement créée vide) est automatiquement alimentée au démarrage de l'application.
Pour utiliser la vue Recherche Rapide de la partie enseignant de monDossierWeb, il faut disposer d'un elasticSearch. Il doit exposer un index stockant les objets Apogée que l'on souhaite proposer à la recherche rapide.
Important : La version d'ElasticSearch, la structure de l'index ainsi que la façon de l'alimenter peuvent varier tant que l'index reste paramétrable dans monDossierWeb, c'est à dire qu'il doit contenir les informations demandées dans context.xml (cf 2.2 Paramétrage) et répondre aux contraintes ci-dessous |
Les éléments obligatoires au bon fonctionnement de monDossierWeb
Voici un exemple de l'index utilisé à l'Université de Lorraine :
Rappel : La version d'ElasticSearch, peut varier tant que l'index reste paramétrable dans monDossierWeb (context.xml (cf 2.2 Paramétrage).) Il est tout à fait possible de monter de version ou d'avoir un workflow de renseignement de l'index totalement différent tant que l'index contient les informations nécessaires à monDossierWeb. Ce paragraphe n'est qu'un exemple pour aider les universités qui débuteraient avec ElasticSearch. Important : L'implémentation d'ElasticSearch au sein de monDossierWeb dépend de la version installée. Pour changer le version utilisée et passer en v2, il faut partir du package source et modifier le pom.xml (voir doc Personnalisation) |
Pour construire cet index d'exemple nous utilisons une "river", qui permet de créer un index à partir d'une requête SQL.
Attention : le plugin 'river' n'étant plus disponible depuis la v2.0 d'ElasticSearch, vous devez installer une version antérieure pour utiliser l'exemple ci-dessous. NB : Le fonctionnement a été également validé avec elasticSearch en version 1.7.0.3 et le plugin river en version 1.5.0.5 |
1) Télécharger et dézipper Elasticsearch ( elasticsearch-1.3.4.official.zip )
Dans config/elasticsearch.yml décommenter et renseigner les paramètre cluster.name et node.name. Le cluster est à renseigner dans context.xml
2) démarrer Elasticsearch
en lançant bin/elasticsearch
depuis le répertoire d'installation,
3) Installer le plugin head :
./bin/plugin -install mobz/elasticsearch-head |
Vous pouvez voir si le plugin est fonctionnel en vous rendant sur : http://localhost:9200/_plugin/head/ via votre navigateur web
4) Intaller le plugin river-jdbc
pour Elasticsearch
. Il suffit de lancer la commande suivante :
./bin/plugin --install river-jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.3.4.7/elasticsearch-river-jdbc-1.3.4.7-plugin.zip |
Au cas où, voici l'archive du plugin : elasticsearch-river-jdbc-1.3.4.7-plugin.zip
Pour lister les plugins installés :
./bin/plugin --list |
5) Télécharger le driver oracle jdbc.
6) Copier le jar dans elasticsearch/plugins/river-jdbc
7) Redémarrer ElasticSearch
8) Créer la river avec le plugin Sense pour Chrome (le nom donné à l'index sera à renseigner dans context.xml):
Exemple de création de river permettant de récupérer les composantes, VET, ELP, et étudiants valides sur n et n-1:
PUT _river/my_jdbc_river/_meta { "type": "jdbc", "jdbc" : { "url" : "jdbc:oracle:thin:@apogee.univ.fr:1521:APOGEE", "user" : "userApogee", "password" :"userPwd", "sql": "SELECT 'CMP' || cod_cmp || '0' \"_id\", 'CMP' \"_type\", cod_cmp COD_OBJ, 0 COD_VRS_OBJ, '[' || cod_cmp || '] ' || lib_cmp LIB_DESC_OBJ, lib_cmp LIB_OBJ FROM composante UNION SELECT DISTINCT 'VDI' || vdi.cod_dip || vdi.cod_vrs_vdi \"_id\", 'VDI' \"_type\", vdi.cod_dip COD_OBJ, vdi.cod_vrs_vdi COD_VRS_OBJ, '[' || vdi.cod_dip || '/' || vdi.cod_vrs_vdi || '] ' || vdi.lib_web_vdi LIB_DESC_OBJ, vdi.lib_web_vdi LIB_OBJ FROM version_diplome vdi, diplome d, VDI_FRACTIONNER_VET vfv WHERE vdi.cod_dip = d.cod_dip and vfv.COD_DIP=d.cod_dip and vfv.COD_VRS_VDI=vdi.COD_VRS_VDI and vfv.DAA_FIN_RCT_VET > (select cod_anu - 2 from annee_uni where eta_anu_iae = 'O') UNION SELECT DISTINCT 'VET' || vet.cod_etp || vet.cod_vrs_vet \"_id\", 'VET' \"_type\", vet.cod_etp COD_OBJ, vet.cod_vrs_vet COD_VRS_OBJ, '[' || vet.cod_etp || '/' || vet.cod_vrs_vet || '] ' || vet.lib_web_vet LIB_DESC_OBJ, vet.lib_web_vet LIB_OBJ FROM version_etape vet, etape e, VDI_FRACTIONNER_VET vfv WHERE vet.cod_etp = e.cod_etp and vfv.COD_ETP=e.cod_etp and vfv.COD_VRS_VET=vet.COD_VRS_VET and vfv.DAA_FIN_RCT_VET > (select cod_anu - 2 from annee_uni where eta_anu_iae = 'O') UNION SELECT 'ELP' || cod_elp || '0' \"_id\",'ELP' \"_type\", cod_elp COD_OBJ, 0 COD_VRS_OBJ,'[' || cod_elp || '] ' || lib_elp LIB_DESC_OBJ, lib_elp LIB_OBJ FROM element_pedagogi e UNION select 'ETU' || IND.COD_ETU || '' \"_id\", 'ETU' \"_type\",CAST(IND.COD_ETU as VARCHAR2(40)) COD_OBJ, 0 COD_VRS_OBJ, '[' || IND.COD_ETU || '] ' || IND.LIB_PR1_IND || ' ' || NVL(IND.LIB_NOM_USU_IND,IND.LIB_NOM_PAT_IND) LIB_DESC_OBJ, IND.LIB_PR1_IND || ' ' || NVL(IND.LIB_NOM_USU_IND,IND.LIB_NOM_PAT_IND) LIB_OBJ from individu ind, INS_ADM_ANU iaa where IAA.COD_IND=ind.COD_IND and IND.COD_ETU is not null and IAA.COD_ANU > (select cod_anu - 2 from annee_uni where eta_anu_iae = 'O')", "index" : "apogee" } } |
A noter que les "river" peuvent être automatisés pour mettre à jour l'index régulièrement. Exemple :
PUT _river/my_jdbc_river/_meta { "type": "jdbc", "jdbc" : { "url" : "jdbc:oracle:thin:@apogee.univ.fr:1521:APOGEE", "user" : "userApogee", "password" :"userPwd", "schedule": "0 0/15 5-23 * * ?", "sql": "REQUETE SQL SUR MESURE", "index" : "apogee" } } |
On peut voir sur http://localhost:9200/_plugin/head/ que l'index est créé est renseigné
Pour construire cet index d'exemple nous utilisons logstash, qui permet de créer un index à partir d'une requête SQL.
1) Télécharger et dézipper Elasticsearch ( elasticsearch-2.3.4.zip )
Dans config/elasticsearch.yml décommenter et renseigner les paramètre cluster.name et node.name. Le cluster est à renseigner dans context.xml
2) démarrer Elasticsearch
en lançant bin/elasticsearch
depuis le répertoire d'installation,
3) Installer le plugin head :
./bin/plugin -install mobz/elasticsearch-head |
Vous pouvez voir si le plugin est fonctionnel en vous rendant sur : http://localhost:9200/_plugin/head/ via votre navigateur web.
Pour lister les plugins installés :
./bin/plugin list |
4) Télécharger Logstash ( logstash-2.3.4.zip ) et le dézipper aux côtés d'ElasticSearch.
5) Télécharger le driver oracle jdbc.
6) Copier le jar dans le répertoire lib de logstash
7) Depuis le répertoire bin de logstash, lancer la commande suivante pour installer le plugin "input-jdbc" :
./plugin install logstash-input-jdbc |
En y configurant :
A noter que le plugin peut être automatisé pour mettre à jour l'index régulièrement. Pour cela il suffit d'ajouter un scheduler. Exemple :
... jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver" schedule => "0 5-23 * * *" statement => "SELECT ... |
9) Puis, depuis le répertoire bin, de logstash :
./logstash -f ../../apogee-test.conf |
On peut voir sur http://localhost:9200/_plugin/head/ que l'index est créé est renseigné