...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
cd /opt/ sudo mkdir esup-signature sudo chown esup:esup esup-signature/ -R git clone https://github.com/EsupPortail/esup-signature.git cd esup-signature |
| Info |
|---|
Le code est cloné dans le dossier ./esup-signature, le dépôt est positionné sur la branche master. Pour toutes les informations relative à l'exploitation et à la mise à jour du code voir le page dédié ici : Exploitation coté serveur |
...
Fichiers de configuration
| Avertissement |
|---|
Le fichier application.yml présent dans les sources est un exemple de configuration basée sur environnement comportant un LDAP et un gestionnaire de groupes (grouper utilisé par l'Université de Rouen en l’occurrence). Les mentions de "for.esup-signature.xxxx" correspondent aux noms des groupes fournis par grouper. Cela ne veut pas dire que grouper soit obligatoire ni même que les noms de groupes doivent respecter ce format. Lorsque vous utiliser maven pour compiler ou lancer l'application c'est le fichier situer dans src/main/resources/application.yml qui est pris en compte. Il est possible de placer le fichier application.yml ailleurs sur le système de fichier en précisant son emplacement à l'aide de l'option -Dspring.config.location=/<DIR>/application.yml lors de l'utilisation de la commande mvn |
...
| Avertissement |
|---|
Il faut faire attention à l'indentation lors de la modification du fichier. Une mauvaise indentation peut faire échouer la compilation De pluis, le fichier doit impérativement être encodé en UTF-8 sinon la compilation peut échouer; Exemple d'erreur : [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project esup-signature: Input length = 1 |
global
Dans la plupart des cas il s'agit ici de modifier root-url par l'adresse de votre esup-signature. Vous pouvez aussi configurer le système d'archivage et activer le switch user.
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
global:
root-url: https://esup-signature.univ-ville.fr # Adresse d'accès à votre instance
domain: univ-ville.fr
nexu-url: https://localhost:9895
nexu-version: 1.23-SNAPSHOT
nexu-download-url: /downloads/nexu-bundle.zip
hide-wizard: false # Désactiver le bouton "Assistant de création de demande"
hide-wizard-workflow: false # Désactiver le bouton "Assistant de création de circuit"
hide-auto-sign: false # Désactiver le bouton "Auto signature"
hide-send-sign-request: false # Désactiver le bouton "Demander une signature"
hide-wizard-except-roles: # Rôles faisant exception à la règle hide-wizard précédente
hide-auto-sign-except-roles: # Rôles faisant exception à la règle hide-auto-sign précédente
hide-send-sign-except-roles: # Rôles faisant exception à la règle hide-send-sign précédente
# archive-uri: smb://serveur_fichier/archives # Chemin pour l'archivage des documents
# delay-before-cleaning : 0 # Délai en jours après signature pour archivage et nettoyage des documents (désactivé si commenté)
enable-su: false # Activer ou non le switch user
enable-splash: true # Activer ou non le message d'accueil de la première connexion
application-email: esup.signature@univ-ville.fr # Adresse emaildu compte système et du support qui apparaitra dans l'aide. Il faut utiliser un alias pour éviter la correspondance avec un utilisateur
hours-before-refresh-notif: 24 # Nombre d'heures entre deux relances utilisateur
share-mode: 3 # Valeur de 0 à 3 : 0 = délégations désactivées, 1 = force le mode signature du délégué, 2 = force signature du mandant, 3 = choix du mode possible par l'utilisateur
return-to-home-after-sign: true # Forcer le retour à la page d'accueil après signature
infinite-scrolling: true # Activer l'infinite scrolling sur le tableau de bord, sinon bascule sur de la pagination
signed-suffix: "_signé" # suffix ajouté au fichiers signés
naming-template: "[title]" # Template de renommage des fichiers
enable-scheduled-cleanup: false # Activer ou non l’archivage et le nettoyage automatique. false par défaut
trash-keep-delay: -1 # Délai de conservation dans la corbeille en jours (-1 non actif)
disable-cert-storage: false # Activer/Désactiver la possibilité de stocker des certificats utilisateurs
nb-days-before-deleting: -1 # Nombre de jours après alerte pour suppression des demandes en attente (-1 non actif)
nb-days-before-warning: -1 # Nombre de jours avant alerte de suppression pour les demandes en attente (-1 non actif)
enable-captcha: false # Activer/Désactiver la detection de robot à la connexion ;-)
max-upload-size: 52428800 # Taille maximum des uploads de fichiers en bytes
pdf-only: false # True : restreindre l'upload aux seuls PDF
export-attachements: true # Exporter les pièces jointes (si actif, l'export sera un dossier contenant le document signé ainsi que les PJ)
seal-certificat-driver: /lib/pkcs11/libIDPrimePKCS11.so # Pilote du certificat cachet dans le cas d'un PKCS11
seal-certificat-file: /opt/cert.p12 # Emplacement du certificat cachet dans le cas d'un PKCS12
seal-certificat-pin: ****** # Code pin du certificat cachet
seal-certificat-type: PKCS11 # Type du certificat PKCS11 ou PKCS12
seal-all-docs: false # Appliquer le cachet sur toutes les demandes terminées
rest-ext-value-url: http://api.univ-ville.fr # Adresse du web service de données externes
shib-users-domain-white-list: # Whitelist des domaines authorisés à obtenir le ROLE_USER pour les connexions Shibboleth
- univ-ville.fr
- inv-univ-ville.fr
send-postit-by-email: false # Envoyer un email au créateur de la demande lors de l’ajout d’un postit
send-creation-mail-to-viewers: false # Envoyer un email aux observateurs à la création d’une demande
sms-required: true # Imposer la double authentification par SMS pour les externes
csv-quote: "\"" # Quote CSV
csv-separator: ";" # Séparateur CSV
otp-validity: 1 # Durée de validité des liens de OTP en minutes
# authorized-sign-types: certsign, nexuSign # Liste des types de signature autorisés (par défault tous les types)
export-attachements: true # Exporter les pièces jointes (si actif, l'export sera un dossier contenant le document signé ainsi que les PJ)
external-signature-params: # Configuration des signatures des externes
add-watermark: false
add-extra: true
extra-type: false
extra-name: false
extra-date: true
extra-on-top: true
# extra-text: ""
french-phone-number-only: false # Activer la vérification des numéros de téléphone français pour l'OTP |
Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les
| Info |
|---|
Détails concernant le système de renommage des fichiers : Le modèle est construit à l'aide d'attributs entre crochets. default : [title] Les attributs disponibles sont :
|
tomcat
Ce paramètre permet de spécifier le port ajp dans le cas ou l'application est démarrée directement (en lançant directement esup-signature.war ou en utilisant mvn springboot:run par exemple)
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
format_sql: true
jdbc:
lob:
non_contextual_creation: true
show-sql: false
open-in-view: false |
ldap
Configuration de l'accès ldap pour spring (obligatoire si l'authentification CAS est activée)
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
ldap:
base: dc=univ-ville,dc=fr
password: ********
urls: ldap://ldap.univ-ville.fr
username: cn=consult,dc=univ-ville,dc=fr |
Configuration du serveur de mail pour l'envoi des alertes
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
servlet:
multipart:
enabled: true
max-file-size: 1280KB
max-request-size: 1280KB
resolve-lazily: true
thymeleaf:
cache: false
encoding: UTF-8
mode: HTML
servlet:
produce-partial-output-while-processing: false
web:
resources:
cache:
cachecontrol:
max-age: 1d
cache-public: true
static-locations: classpath:/static
mvc:
static-path-pattern: /** |
security
Via le protocole oauth2 inclus dans spring-security il est possible de configurer l'authentification avec n'importe quel fournisseur d'identité compatible.
...
| Avertissement |
|---|
Attention vos requetes LDAP doivent impérativement être mises entre parentheses. De plus les objectClasses des éléments recherchés sont ecrits en dur dans les classes PersonLdap, PersonLightLdap, OrganizationalUnitLdap et AliasLdap. Pour élargir le champ de recherche il faut modifier ces classes directement. Elle sont situées dans le dossier : src/main/java/org/esupportail/esupsignature/service/ldap/entry |
Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les
...
Dans la partie mail (hors spring) vous pouvez paramétrer l'adresse from pour l'envoi de mails
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
mail:
from: no-reply.esup-signature@univ-ville.fr |
...
sms
Cette partie permet de configurer un service d'envoi de sms pour l'utilisation de la fonction One Time Password à destination des personnes extérieures à l’établissement. Des implémentations pour SMSU et pour OVH sont disponibles. Il est possible d'en ajouter en implémentant la classe https://github.com/EsupPortail/esup-signature/blob/master/src/main/java/org/esupportail/esupsignature/service/interfaces/sms/SmsService.java
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sms:
enable-sms : false
# service-name: SMSU
# url: https://smsu-api.univ-ville.fr/
# username: sms-account
# password: ******** |
...
dss
tsp-servers : adresses url des serveurs de temps utilisé pour les horodatages des signatures électroniques
...
| Avertissement |
|---|
Il y a actuellement une confusion concernant la configuration des acces aux stockages externes. Pour les stockages utilisant de SMB ou VFS, il s'agit de configurer une url de test (pour les test d'intégration). Par la suite, au niveau du paramétrage dans esup-signature, il sera possible de mettre n'importe quel url absolue (pour smb, le compte configuré devra avoir les bons accès) Pour CMIS, l'attribut cmis-uri-test est mal nommé car il s'agit de l'adresse "fixe" du server CMIS (Nuxeo par ex). Au niveau de l'application il faudra configurer des adresses relatives. Pour plus d'information voir la page Gestion des circuits#D%C3%A9finirunesourcepourlesdocuments |
...
Paramètres de traitement des PDF
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
pdf:
convert-to-pdf-a: true
path-to-g-s: /usr/bin/gs
pdf-a-level: 2
pdf-to-image-dpi: 72
auto-rotate: true # Corrige automatiquement la rotation des documents en portait qui ont été tournés de 90° |
...
security
La sécurité est gérée par Spring Security. Il est possible d'activé 3 mécanismes de sécurité : OAuth, Shibboleth et/ou CAS. Pour désactiver une ou l'autre de ces méthodes, il suffit de commenter les lignes qui s'y réfèrent.
...
| Info |
|---|
group-to-role-filter-pattern: Ce pattern permet de donner automatiquement les rôles correspondants à la partie (\w*) du pattern. Prenons le pattern for.esup-signature.role.(\w*), si l'utilisateur est dans le groupe for.esup-signature.role.bondecommande, il obtiendra automatiquement le role ROLE_BONDECOMMANDE utilisable par la suite pour donner des droits au niveau des formulaires et des circuits. mapping-groups-roles: Permet de définir des rôles en fonction des groupes de l'utilisateur. Le ROLE_USER est maintenant obligatoire pour accéder à l'application. Si constituer un groupe d'utilisateur est difficile, vous pouvez utiliser mapping-filters-groups dans la conf ldap pour constituer des groupes à l'aide de requêtes ldap. ws-access-authorize-ips : permet de configurer les adresses autorisées à accéder aux web services d' esup-signature. On peux mettre autant d'adresses que souhaité séparées par des virgules ainsi que des plages du genre 192.168.1.0/24. (Exemple : ws-access-authorize-ips : 127.0.0.1, 192.168.1.0/24, 10.54.20.11, etc. ) group-mapping-spel: Sert à outre passer les groupes obtenus via ldap. Ceci est utiles si vous n'avez pas de configuration LDAP (shibboleth seul par exemple). On utilise alors la syntaxe SePL (Spring Expression Language), avec seulement l'attribut #eppn pris en compte ainsi que la possibilité de mettre la valeur "true". Ex: pour ajouter à tout le monde le groupe "for.esup-signature.user" on peut mettre for.esup-signature.user: "true". On peut aussi utiliser la syntaxe suivante pour saisir "en dure" des personnes : for.esup-signature.admin: "#eppn == 'toto@univ-ville.fr' or #eppn == 'titi@univ-ville.fr' " |
...
server
Paramètre du serveur tomcat embarqué dans spring-boot
...
Plus de détails sur cette page https://docs.spring.io/spring-boot/docs/2.0.x/reference/html/howto-embedded-web-servers.html#howto-customize-tomcat-behind-a-proxy-server
...
sign
Vous pouvez ajuster finement les paramètres de signature électronique en particuler le niveau défini par la norme ETSI EN 319 102-1.
...
| Avertissement | |||||||
|---|---|---|---|---|---|---|---|
Lorsque votre configuration sera terminée, vous devez creer un commit git, ceci afin d'éviter tout problème lors d'une prochaine mise à jour. Les commandes git à lancer:
|
logback.xml
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/esup-signature.log</file>
<append>true</append>
<immediateFlush>true</immediateFlush>
<encoder>
<pattern>[%-5level] %date{dd/MM/yyyy HH:mm:ss} %logger{35} - %msg%n</pattern>
</encoder>
</appender>
|
...