Utilisation des clients externes

Pour faciliter l’accès aux API externes, le projet VITAM met à disposition les clients externes Java correspondant.

Astuce

Le code d’ihm-demo est un bon exemple d’utilisation des clients présentés ci-dessous.

Client Ingest

Le client Java des API ingest externes a les coordonnées maven suivantes :

<dependency>
        <groupId>fr.gouv.vitam</groupId>
        <artifactId>ingest-external-client</artifactId>
        <version>${vitam.version}</version>
</dependency>

La configuration du client est à réaliser conformément au paragraphe Configuration d’un client externe ; le fichier de configuration dédié à l’API d’ingest externe est le fichier ingest-external-client.conf :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
serverHost: {{ vitam.ingestexternal.host }}
serverPort: {{ vitam.ingestexternal.port_service }}
secure: true
sslConfiguration :
 keystore :
  - keyPath: {{vitam_folder_conf}}/keystore_{{ vitam_struct.vitam_component }}.p12
    keyPassword: {{keystores.client_external.ihm_demo}}
 truststore :
  - keyPath: {{vitam_folder_conf}}/truststore_{{ vitam_struct.vitam_component }}.jks
    keyPassword: {{truststores.client_external}}
hostnameVerification: true

Le fichier définitif doit s’appeler ingest-external-client.conf et doit être placé dans le répertoire /vitam/conf ou le répertoire défini par la surconfiguration du chemin de configuration par l’argument passé à la JVM -Dvitam.config.folder=/moncheminmonchemin est le lieu où se trouve ce fichier de configuration.

Une instance de client se récupère grâce au code suivant :

import fr.gouv.vitam.ingest.external.client
IngestExternalClient client = IngestExternalClientFactory.getInstance().getClient()

Pour la suite, se référer à la javadoc de la classe IngestExternalClient.

Client Access

Le client Java des API access externes a les coordonnées maven suivantes :

<dependency>
        <groupId>fr.gouv.vitam</groupId>
        <artifactId>access-external-client</artifactId>
        <version>${vitam.version}</version>
</dependency>

La configuration du client est à réaliser conformément au paragraphe Configuration d’un client externe ; le fichier de configuration dédié à l’API d’access externe est le fichier access-external-client.conf :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
serverHost: {{ vitam.accessexternal.host }}
serverPort: {{ vitam.accessexternal.port_service }}
secure: true
sslConfiguration :
 keystore :
  - keyPath: {{vitam_folder_conf}}/keystore_{{ vitam_struct.vitam_component }}.p12
    keyPassword: {{keystores.client_external.ihm_demo}}
 truststore :
  - keyPath: {{vitam_folder_conf}}/truststore_{{ vitam_struct.vitam_component }}.jks
    keyPassword: {{truststores.client_external}}
hostnameVerification: true

Le fichier définitif doit s’appeler access-external-client.conf et placé dans le répertoire par défaut /vitam/conf ou le répertoire définit par la surconfiguration du chemin de configuration par l’argument passé à la JVM -Dvitam.config.folder=/moncheminmonchemin est le lieu où se trouve ce fichier de configuration.

Access

Une instance de client se récupère grâce au code suivant :

fr.gouv.vitam.access.external.client
AccessExternalClient client = AccessExternalClientFactory.getInstance().getClient()

Pour la suite, se référer à la javadoc de la classe AccessExternalClient.

Admin

Une instance de client se récupère grâce au code suivant :

fr.gouv.vitam.access.external.client
AdminExternalClient client = AdminExternalClientFactory.getInstance().getClient()

Pour la suite, se référer à la javadoc de la classe AdminExternalClient.

Configuration d’un client externe

La configuration du client prend en compte les paramètres et fichiers suivants :

  • La propriété système Java vitam.config.folder : indique le répertoire dans laquelle les fichiers de configuration des clients seront recherchés (ex de déclaration en ligne de commande: -Dvitam.config.folder=/vitam/conf/clientvitam/) ;

  • Le fichier de configuration (<api>-client.conf) : doit être présent dans le répertoire défini précédemment ; c’est un fichier de configuration qui contient notamment les éléments de configuration suivants :

    • serverHost et serverPort permettent d’indiquer l’hôte et le port du serveur hébergeant l’API externe ;
    • keystore : keyPath et keyPassword permettent d’indiquer le chemin et le mot de passe du magasin de certificats contenant le certificat client utilisé par le client externe pour s’authentifier auprès de l’API externe ;
    • trusstore : keyPath et keyPassword permettent d’indiquer le chemin et le mot de passe du magasin de certificats contenant les certificats des autorités de certification requise (i.e. AC des certificats client et serveur).

Le client externe peut necessiter un header pour l’authentification « X-Personal-Certificate » pour certaines resources sensibles. Ces resources sont listées dans la collection certificate de la base de données identity.