Cas n°1 - Un proxy est configuré sur le réseau
Cas n°3 - Erreur JAVA liée au certificat SSL
Cas n°4 - Imports des documents volumineux
Cas n°5 - Champs de fusion d'un document DOCX est en anglais
Cas n°6 - Erreurs php lors de l'édition de documents
Cas n°7 - Non prise en charge du type mime
L'import de pièces jointes et l'édition de document font partie des fonctions principales de Maarch courrier. Ce sont des fonctions qui reposent également sur l'utilisation d'un ensemble de composants et d'outils externes. Ces composants permettent le bon fonctionnement et la compatibilité avec les éditeurs de documents. Il est possible que l'édition ou l'import de documents soient impossibles à cause d'un dysfonctionnement lié à un de ces composants (exp :java, uniconv ..).
Si l'édition de modèle est impossible et que vous avez une erreur java. Le dysfonctionnement est probablement lié à un des éléments de la technologie java sur votre poste client. Les applets java sont utilisés pour fournir au sein d'applications Web des fonctionnalités interactives. Or, l'exécution des applets dépend des paramètres du proxy. Ces paramètres du proxy peuvent être contrôlés via le panneau de configuration Java.
Si les paramètres de proxy sont incorrects, une boîte de dialogue apparait lors du démarrage de l'application et elle contient la mention "ClassNotFoundException".
La procédure suivante permet de configurer le proxy dans les paramètres JAVA
Si le chargement de l’applet échoue et que la même erreur de connexion survient à nouveau, essayez de configurer la connexion directe.
L'authentification SSO permet à un utilisateur de s'authentifier une seule fois et d'accéder à plusieurs applications ou sites web sécurisés.
java.net.ConnectException: La connexion a expiré : connect
java.net.ConnectException: Connection refused: connect
Exclure du SSO le répertoire /tmp/*.
<!> Cette modification crée une faille de sécurité puisque le contenu du répertoire /tmp devient visible.
Pour protéger le contenu de ce répertoire, il est indispensable de désactiver l'indexe (qui permet de lister le contenu du répertoire).
Ainsi, en supprimant l'accès à l'indexe, les fichiers seront "invisibles" tant qu'on ne dispose pas du nom du fichier.
Pour supprimer l'accès à l'indexe, il faut transformer le Options Indexes
en Options -Indexes
dans la configuration d'apache.
Le fichier de configuration principale d'apache est (httpd.conf ou apache2.conf ou vhosts)
- Cent OS RedHat /etc/httpd/conf/httpd.conf
- Debian et les autres: /etc/apache2/httpd.conf
- Freebsd: /usr/local/etc/apache22/httpd.conf
/etc/apache2/apache2.conf
<Directory /var/www/>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Pensez ensuite soit:
sudo /etc/init.d/apache2 reload
ou
sudo systemctl restart apache2
L’activation du site en https, par exemple, peut créer des erreurs lors de l’édition des modèles.
Une des erreurs connues est de la non-validité du certificat sécurisé erreur de type:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Pour corriger l'erreur sur la non-validité du certificat sécurisé, il faut procéder comme suit :
Importer le certificat depuis le navigateur
Aller dans votre dossier Java du poste client : C:\Program Files\Java\jre\bin
Exécuter la commande
keytool -import -trustcacerts -alias "nom du domaine" -file "certificatimporté.crt" -keystore "C:\Program Files\Java\lib\security\cacerts"
Un mot de passe peut être requis. S’il n’a pas été modifié lors de la création du certificat vous pouvez utiliser le mot de passe changeit
Si la récupération des fichiers volumineux dans l’application est impossible.
Si vous avez un message d'erreur tel que dans la liste ci-dessous :
warning post content-length of bytes exceeds the limit...
The uploaded file exceeds the upload_max_filesize directive in php.ini...
exceeds the maximum upload size for this site...
Fatal error: Allowed memory size of 12345678 bytes exhausted (tried to allocate 2345678 bytes) in /home/your-username/public_html/wp-includes/plugin.php on line 1000...
413 Error: Request Entity Too Large
Fatal error: Maximum execution time of 30 seconds exceeded
Pour permettre l'intégration de documents volumineux
Ci-dessous les paramètres à changer dans le fichier php.ini de votre serveur
La quantité de mémoire qu'un script peut utiliser :
post_max_size = 80M
La taille maximum d'une requête HTTP POST (dans laquelle est transmise le fichier) :
upload_max_filesize = 80M
La taille maximale d'un fichier uploadé sur le serveur :
memory_limit = 160M
La relation entre ces trois directives est : upload_max_filesize <= post_max_size < memory_limit.
Pensez ensuite soit:
sudo /etc/init.d/apache2 reload
ou
sudo systemctl restart apache2
Il y a aussi les directives de temps d’exécution. La configuration de celles-ci dépend des capacités du réseau (plus il est rapide, plus les valeurs peuvent être petites) :
La durée maximale d'exécution du script (en s.) :
max_execution_time = 240
La durée maximale de lecture de la requête (en s.).
La valeur doit être suffisamment haute pour que le serveur ait le temps de recevoir le
fichier avant de couper la connexion : max_input_time = 60
avec la relation max_execution_time > max_input_time.
Par exemple avec un débit montant (upload) réel de 10MB/s, un fichier de 100MB mettra 10s à être uploadé. Avec une marge de sécurité, on peut définir max_input_time à un minimum de 15s.
Certaines distributions d’Apache définissent la directive LimitRequestBody. Cette directive de configuration a le même rôle que la directive post_max_size de PHP. Si elle est définie, sa valeur doit-être au moins égale à la valeur de post_max_size.
La conversion PDF de certaines balises TIME ou DATE d'un document DOCX (Office WORD 2007) ne tient pas compte de la langue indiquée dans le document. Les balises permettant d'afficher en toutes lettres, en abrégé ou nom, les jours et les mois, sont systématiquement traduites en anglais lors de la conversion PDF opérée par Maarch Courrier (intégrant un composant externe pour la conversion DOCX vers PDF).
Contournements possibles :
ob_clean();
Cette fonction vide le tampon de sortie sans l'envoyer au navigateur.
Unoconv permet de convertir les documents Microsoft Office (doc, ppt, xls, …), Open Office et Libre Office (odt, odp, ods, …) en ligne de commande. Pour vérifier quelle version d'uniconv est actuellement utilisée :
maarch@MaarchIntegration1904:~$ unoconv --version
unoconv 0.7
Written by Dag Wieers <dag@wieers.com>
Homepage at http://dag.wieers.com/home-made/unoconv/
platform posix/linux
python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516]
LibreOffice 5.2.7.2
Pour vérifier que le type de média (appelé également type mime) est bien pris en charge par maarch courrier, vous pouvez consulter le fichier extensions.xml
Les chemins sont à titre indictif, bien vérifier que vous êtes dans le repertoire custom de votre instance et si le fichier extension.xml n'existe pas dans ce repertoire le copier du repertoire principal de Maarch Courrier avant de le modifier.
cat /var/www/html/MaarchCourrier/custom/cs_votreinstance/apps/maarch_entreprise/xml/extensions.xml
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<FORMAT>
<name>PDF</name>
<mime>application/pdf</mime>
<index_frame_show>true</index_frame_show>
</FORMAT>
<FORMAT>
<name>TIFF</name>
<mime>image/tiff</mime>
<index_frame_show>false</index_frame_show>
</FORMAT>
<FORMAT>
<name>TIF</name>
<mime>image/tiff</mime>
<index_frame_show>false</index_frame_show>
</FORMAT>
<FORMAT>
<name>DOC</name>
<mime>application/msword</mime>
<index_frame_show>false</index_frame_show>
</FORMAT>
<FORMAT>