Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire


...

Récupération des sources

Lorsque tous les Prérequis sont installés et PostgreSQL configuré, vous pouvez récupérer les sources.

...

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


...

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

application.yml

La configuration principale d' esup-signature se fait au travers application.yml

...

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.

...

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 :

  • [title] : titre du document original
  • [id] : identifiant du parapheur
  • [worflowName] : nom du circuit
  • [user.name] : nom prénom de l'utilisateur courant
  • [user.eppn] : eppn de l'utilisateur courant
    [user.initials] : initiales de l'utilisateur courant
  • [UUID] : un identifiant unique
  • [order] : le numéro d'ordre de création pour un même circuit
  • [timestamp] : timestamp sous forme de long
  • [date-fr] : date dd/MM/yyyy hh:mm
  • [date-en] : date yyyy-MM-dd hh:mm

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
languageyml
themeRDark
tomcat:
    ajp:
        port: 6009


...

spring

session

À ne pas modifier. Permet l'activation de spring-session.

Bloc de code
languageyml
themeRDark
session:
  jdbc:
      initialize-schema: always
      save-mode: always
data, datasource

Configuration de la base de donnée :

Bloc de code
languageyml
themeRDark
    datasource:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://localhost:5432/esupsignature
        password: esup
        username: esupsignature
		jdbc-url: ${spring.datasource.url}
		hikari:
		    auto-commit: false
jpa

Il faut prêter une attention particulière au paramètre ddl-auto. Mode update permet la création et la mise à jour de la base de donnée lors du démarrage de l'application ou des tests. Ce mode peut éventuellement être utilisé lors des mises à jour de l'application. Le reste du temps (en production par exemple) ce paramètre peut être positionné sur validate qui ne fera qu’exécuter un contrôle de la base de données. 

...

Bloc de code
languageyml
themeRDark
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
languageyml
themeRDark
    ldap:
        base: dc=univ-ville,dc=fr
        password: ********
        urls: ldap://ldap.univ-ville.fr
        username: cn=consult,dc=univ-ville,dc=fr
mail

Configuration du serveur de mail pour l'envoi des alertes

...

Bloc de code
languageyml
themeRDark
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.

...

Bloc de code
languageyml
themeRDark
    security:
        oauth2:
            client:
                registration:
                    franceconnect:
                        provider: franceconnect-idp
                        authorization-grant-type: authorization_code
                        client-id: <client_id>
                        client-secret: <client_secret>
                        client-authentication-method: client_secret_post
                        redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
                        scope:
                            - openid
                            - family_name
                            - given_name
                            - email
                provider:
                    franceconnect-idp:
                        authorization-uri: https://fcp.integ01.dev-franceconnect.fr/api/v1/authorize
                        token-uri: https://fcp.integ01.dev-franceconnect.fr/api/v1/token
                        user-info-uri: https://fcp.integ01.dev-franceconnect.fr/api/v1/userinfo
                        user-name-attribute: sub
                        user-info-authentication-method: header

...

ldap

La configuration ldap hors spring est spécifique à votre établissement,  elle précise les modalités de recherche de vos utilisateur dans l'annuaire

...

Pour la gestion des rôles voir : Documentation administrateur#Gestiondesr%C3%B4les


...

mail

Dans la partie mail (hors spring) vous pouvez paramétrer l'adresse from pour l'envoi de mails

Bloc de code
languageyml
themeRDark
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
languageyml
themeRDark
sms:
    enable-sms : false
#    service-name: SMSU
#    url: https://smsu-api.univ-ville.fr/
#    username: sms-account
#    password: ********


...

dss

tsp-server : adresse url du serveur de temps utilisé pour les horodatages des signatures électroniques

...

Bloc de code
languageyml
themeRDark
proxy:
    httpEnabled: "true"
    httpHost: "proxy.univ-ville.fr"
    httpPort: "3128"
    httpUser: ""
    httpPassword: ""
    httpsEnabled: "true"
    httpsHost: "proxy.univ-ville.fr"
    httpsPort: "3128"
    httpsUser: ""
    httpsPassword: ""
    httpExcludedHosts: ""
    httpsExcludedHosts: ""


...

fs (file system)

La partie file system (fs) permet de configurer une source principale de donnée pour chaque type de stockage (smb, cmis, vfs). esup-signature ne prend en charge qu'une seule source par type.

...

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


...

pdf

Paramètres de traitement des PDF

Bloc de code
languageyml
themeRDark
pdf:
    convert-to-pdf-a: true
    path-to-g-s: /usr/bin/gs
    pdf-a-level: 2
    pdf-to-image-dpi: 72

...

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

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

Bloc de code
languageyml
themeRDark
server:
    servlet:
        session:
            tracking-modes: COOKIE
    error:
        include-stacktrace: always
    port: 8080
    tomcat:
        mbeanregistry:
            enabled: true
        remoteip:
            remote-ip-header: X-Forwarded-For
        basedir: ./tem



...

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.

...

Bloc de code
languageyml
themeRDark
sign:
    cades-digest-algorithm: SHA256
    cades-signature-level: CAdES_BASELINE_T
    container-type: ASiC_E
    default-signature-form: XAdES
    pades-digest-algorithm: SHA256
    pades-signature-level: PAdES_BASELINE_T
    password-timeout: 60000
    signature-packaging: ENVELOPED
    xades-digest-algorithm: SHA256
    xades-signature-level: XAdES_BASELINE_T


...

logging

Permet de spécifier l'emplacement pour le fichier de logs ainsi que l'usage (facultatif) d'un fichier de configuration logback (voir chapitre suivant)

Bloc de code
languageyml
themeRDark
logging:
    file:
        name: logs/esup-signature.log
    level:
        root: info
        org.esupportail.esupsignature: info
        org.verapdf: error
        org.apache.pdfbox: error
        eu.europa.esig.dss: error
        org.springframework.web.filter.CommonsRequestLoggingFilter: error
#    config: classpath:logback-prod.xml												# permet de configurer logback via un fichier xml


...

springdoc

Active l'api-doc. Pour permettre l'usage des web service directement depuis swagger, il faut modifier supported-submit-methods avec ["get", "post", "put"]

...

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:

Bloc de code
languagebash
themeEclipse
git add .
git commit -m "ma conf de prod"


logback.xml


Bloc de code
languagexml
themeRDark
    <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>

src/main/resources/i18n/messages.properties

Vous pouvez modifier les premières ligne du fichier messages.properties pour spécifier le texte du footer et le titre de l'application

...