Les plugins


Afin de faciliter l’ajout dans FlowerDocs de fonctionnalité, FlowerDocs GUI inclut un module reverse proxy basé sur le produit open source Zuul de Netflix. Ce module permet d’inclure des plugins en redirigeant des requêtes HTTP émises auprès de FlowerDocs GUI vers des URL selon les routes définies.

Définir un plugin

Un plugin permet de rediriger un flux HTTP reçu par FlowerDocs GUI vers une autre URL. Pour accéder à un plugin, à travers FlowerDocs GUI, il est nécessaire que le client émettant la requête soit authentifié (à travers le cookie SESSION). Cette authentification est transmise au plugin sous la forme d’une en-tête HTTP token dont la valeur est le jeton de l’utilisateur effectuant la requête.


Afin d’ajouter un plugin, il est nécessaire de définir la route correspondante. Une route est définie par :

  • un chemin en entrée : les requêtes émises sur ce chemin sont interceptées. Pour que FlowerDocs GUI puisse rajouter le token, ce chemin doit toujours commencer par /plugins/.
  • une URL : l’URL vers laquelle rediriger les requêtes interceptées

soit :

zuul.routes.<plugin-id>.path=<plugin path>
zuul.routes.<plugin-id>.url=<external plugin URL>


Exemple : Définition d’un plugin nommé myplugin

zuul.routes.myplugin.path=/plugins/sample/**
zuul.routes.myplugin.url=http://localhost:3006/sample

Avec cet exemple, les requêtes émises sur <gui>/plugins/sample sont redirigées vers http://localhost:3006/sample.



  • Avec le framework Spring MVC, il est possible de récupérer ce token en ajoutant le paramètre suivant à la méthode d’entrée : @RequestHeader("token") String token.
  • L’application supporte non seulement HTTP mais aussi HTTPS pour rediriger les requêtes.

Le timeout sur les plugins peut être configuré à l’aide des propriétés zuul.host.connect-timeout-millis et zuul.host.socket-timeout-millis.

Plugins par défaut

Par défaut, plusieurs plugins sont ajoutés permettant de consommer des ressources FlowerDocs. Ils sont listés dans le tableau ci-dessous.

Chemin URL cible Description
/plugins/arender ${gui.client.arender.url} Redirige vers la visionneuse de document ARender
/plugins/plume ${gui.client.plume.url} Redirige vers plume
/plugins/soap ${core}/services Redirige vers les services SOAP exposés par FlowerDocs Core
/plugins/rest ${core}/rest Redirige vers les services REST exposés par FlowerDocs Core
/plugins/reporting ${core}/external/reporting Redirige vers le module Kibana de FlowerDocs Core
/plugins/external ${core}/external