Le projet git est construit comme suit :
docker
: ce répertoire contient des propositions de fichiers Dockerfile pour la construction/modification des images dockers ainsi qu'une proposition pour le fichier docker-compose.ymltabou2-facade
: il s'agit du sous-projet maven contenant l'application et les controleurstabou2-service
: il s'agit du sous-projet maven contenant les entités et les DAOtabou2-storage
: il s'agit du sous-projet maven contenant les services métiers, les services techniquesreadme
: les données nécessaires au présent documentresources
: les resources avec notamment :bdd
qui contient les fichiers SQL d'initialisationopenapi
qui contient le fichier openapi permettant de générer l'ensemble des services REST du back-office
L'installation peut être réalisée soit :
- Dans une base de données dédiée
- Dans un schéma d'une base de données existantes
Dans tous les cas, il faut exécuter les scripts sql dans l'ordre suivant:
[projet]/resources/bdd/create.sql
pour la création des tables tabou[projet]/resources/bdd/create_rm_database.sql
pour la création des tables Rennes Métropole[projet]/resources/bdd/common_data.sql
pour l'insertion des données par défaut
La configuration de l'application de trouve dans le répertoire [projet]/tabou2-facade/src/main/resources
.
default.properties
qui est la configuration georchestra par défaut (notamment le nom de domaine georchestra, les paramètres de connexion au serveur LDAP)tabou2-common.properties
pour les éléments communs (par exemple le répertoire temporaire utilisé par l'application). Ce fichier est inclu dans le WAR construittabou2/tabou2.properties
qui est surchargé sur les environnements lors du déploiements. Il contient notamment la configuration aux base de données Tabou, Droits des cités et Rennes Métropole.
Le fichier tabou2/tabou2.properties
fichier est détaillé comme suit:
# Path du serveur
server.servlet.context-path=/v1
# Base de données
spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql
# Hibernate
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
# Base de données Droit des Cités
spring.ddc.datasource.jdbc-url=jdbc:postgresql://localhost:5432/tabou2
spring.ddc.datasource.username=root
spring.ddc.datasource.password=postgres
spring.ddc.datasource.driver-class-name=org.postgresql.Driver
spring.ddc.datasource.hibernate.show_sql=true
spring.ddc.datasource.hibernate.format_sql=true
spring.ddc.datasource.hibernate.hbm2ddl.auto=validate
# Base de données Tabou2
spring.tabou2.datasource.jdbc-url=jdbc:postgresql://localhost:5432/tabou2
spring.tabou2.datasource.username=root
spring.tabou2.datasource.password=postgres
spring.tabou2.datasource.driver-class-name=org.postgresql.Driver
spring.tabou2.datasource.hibernate.show_sql=true
spring.tabou2.datasource.hibernate.format_sql=true
spring.tabou2.datasource.hibernate.hbm2ddl.auto=validate
# Base de données SIG de Rennes Metropole
spring.sig.datasource.jdbc-url=jdbc:postgresql://localhost:5432/tabou2
spring.sig.datasource.username=sig_user
spring.sig.datasource.password=sig_user
spring.sig.datasource.driver-class-name=org.postgresql.Driver
spring.sig.datasource.hibernate.show_sql=true
spring.sig.datasource.hibernate.format_sql=true
spring.sig.datasource.hibernate.hbm2ddl.auto=validate
Description de quelques paramètres du fichier tabou2/tabou2.properties
:
spring.tabou2.datasource.jdbc-url
: url de connexion à la base de données Tabouspring.tabou2.datasource.username
: le nom d'utilisateur pour la base de donnéesspring.tabou2.datasource.password
: le mot de passe
Les propriétés préfixées par spring.ddc
concernent la base de donnés Droit des cités, tandis que les propriétés préfixées par spring.sig
concernent la base de données SIG de Rennes Métropole
Un script est lancé au déploiement de l'image docker de l'application qui ajoute un certificat donné au keystore.
Afin d'ajouter le bon certificat au bon keystore, il est nécessaire de remplir les informations adéquates dans le fichier properties
de l'application:
# filename du certificat (à déposer dans <...>/config/ ou <...>/config/tabou2/)
# le chemin a renseigné est celui du container et est donc de la forme /etc/georchestra/<keystore> ou /etc/georchestra/tabou2/<keystore>
server.trustcert.keystore.cert=
# nom de l'alias du certificat à insérer dans le keystore
server.trustcert.keystore.alias=
# chemin absolu du keystore dans le container docker
server.trustcert.keystore.store=
# mot de passe du keystore
server.trustcert.keystore.password=
Il est important de noter que la variable server.trustcert.keystore.cert
ne doit contenir que le nom du fichier, pas son chemin.
Si les variables ne sont pas remplies, le certificat n'est pas ajouté au keystore et l'application démarre normalement.
Le certificat dont le nom est renseigné doit être déposé dans <...>/config/ ou <...>/config/tabou2/)
.
L'application est construite à partir de la commande maven
mvn -DskipTest package
Le résultat de cette construction est :
- Un fichier WAR
[projet]/tabou2-facade/target/tabou2.war
déployable directement dans Tomcat ou Jetty - Un fichier SpringBoot JAR
[projet]/tabou2-facade/target/tabou2.jar
L'application peut être lancée :
- Soit dans un container Tomcat 9.
Il suffit alors de déposer le fichier WAR produit dans le répertoire webapps de Tomcat.
- Soit dans un container Jetty
Il suffit alors de copier le fichier WAR produit dans le répertoire webapps de Jetty puis de lancer Jetty
cp signalement.war /var/lib/jetty/webapps/tabou2.war
java -Djava.io.tmpdir=/tmp/jetty \
-Dgeorchestra.datadir=[projet]/tabou2-facade/src/main/resources \
-Xmx${XMX:-1G} -Xms${XMX:-1G} \
-jar /usr/local/jetty/start.jar"
- Soit en lançant l'application SpringBoot à partir du JAR
java -jar signalement.jar \
-Dgeochestra.datadir=[projet]/tabou2-facade/src/main/resources
Il est à noter que l'application doit être démarrée avec l'option suivante afin de définir le répertoire où se trouvent ses ressources.
-Dgeochestra.datadir=[projet]/tabou2-facade/src/main/resources
Pour tester le bon fonctionnement de l'application, il faut accéder à l'URL swagger : http://localhost:8080/swagger-ui.html
Afin de pouvoir appeler les URLs d'authentification, installer une extension au navigateur permettant de modifier les headers (ModHeader pour chrome) Et ajouter les header suivants :
- sec-username
- sec-roles
- sec-firstname
- sec-lastname
- sec-email
- sec-org
- sec-orgname