Configuration SAINet
Les configurations spécifiques du serveur SAINet se trouvent dans le fichier <runtime>/server.properties
. Certaines d’entre elles
peuvent également être directement définies en tant que variable d’environnement (généralement pour une installation Docker).
Certaines peuvent ensuite être écrasées par une variable SYS22 dans SAINet (voir les variables applicatives en fin de page).
Configuration globale
Ces propriétés sont globales au serveur.
Propriété | Environnement | Type | Description |
---|---|---|---|
server.customerFile |
SAINET_CUSTOMER_FILE |
string | Configuration des modules du serveur. Doit contenir le nom d’un fichier (avec extension) existant dans modules/customers. |
server.mobile.enabled |
SAINET_MOBILE_ENABLED |
boolean | Détermine si l’interface web doit être déployée (nécessite une compilation pour le développement). Cela n’a pas d’impact sur l’API JSON. |
server.port.http |
SAINET_PORT_HTTP |
int | Port HTTP (utiliser une valeur négative pour un lookup dynamique). |
server.port.https |
SAINET_PORT_HTTPS |
int | Port HTTPS (utiliser une valeur négative pour un lookup dynamique). |
server.port.admin |
int | Port d’administration (utiliser une valeur négative pour un lookup dynamique). | |
server.port.jmx |
int | Interne, ne pas utiliser. | |
server.port.jms |
int | Interne, ne pas utiliser. | |
server.port.iiop_orb |
int | Interne, ne pas utiliser. | |
server.port.iiop_ssl |
int | Interne, ne pas utiliser. | |
server.port.iiop_sslma |
int | Interne, ne pas utiliser. |
Lorsque la valeur d’un port est négative, cela indique au serveur SAINet de faire une recherche dynamique d’un port ouvert.
Par exemple, si la valeur est -9301
, le serveur va essayer d’utiliser le port 9301. Si celui-ci n’est pas disponible, il va
essayer le 9302 et ainsi de suite jusqu’à 9601 (limite à 300). La valeur d’un port ne peut pas être mise à zéro.
L’utilisation d’un port en-dessous de 1024 requiert généralement les accès root/administrateur. Il est donc déconseillé de les utiliser.
Par défaut, le système va utiliser les port 9090 (HTTP) et 9191 (HTTPS) afin de ne pas entrer en conflit avec d’éventuelles autres applications qui sont généralement configurées par défaut sur les ports 8080 et 8181.
Identification du serveur
Ces propriétés sont globales au serveur et servent principalement à l’identifier.
Propriété | Environnement | Type | Description |
---|---|---|---|
server.sainet.instance.name |
SAINET_INSTANCE_NAME |
string | Nom de l’instance (affiché dans le header SAINet). Par défaut, PYA . |
server.sainet.domain.name |
SAINET_DOMAIN_NAME |
string | Nom du domaine. Cette valeur peut être utilisée pour facilier l’identification de serveur. Il est toutefois recommandé de la laisser vide. |
server.sainet.domain.env |
SAINET_ENV_NAME |
string | Environnement du serveur. Cette valeur doit correspondre à l’identifiant d’un des tags <environment> du fichier customer. |
SAINET_EXTERNAL_URL |
string | URL complète d’accès externe à SAINet (par exemple https://sainet.mydomain.com/SNV4SRV-ws-war/EPS ). Cette variable n’est pas nécessaire si l’environnement pointe déjà sur la bonne URL. |
Sur un serveur de production, généralement seule la variable server.sainet.domain.env
nécessite d’être définie afin que le
serveur puisse connaître l’URL par laquelle il est accédé (nécessaire pour le mobile).
Si plusieurs instances sont disponibles, il est nécessaire de définir la variable server.sainet.instance.name
afin que cette dernière
puisse être identifiée en cas de problème.
Accès au serveur
Ces propriétés sont utilisées par les descripteurs internes à SAINet et ont un impact sur les différentes URLs et resources JNDI.
Propriété | Type | Description |
---|---|---|
sainet.context_root |
string | Racine de l’application (par défaut SNV4SRV-ws-war ). |
sainet.context_root_mobile |
string | Racine de l’application mobile (par défaut SNV4SRV-mobile-war ). |
sainet.jdbc_resource_ref_name |
string | Nom JNDI pour la resource JDBC (par défaut jdbc/sainet ) afin de se connecter à la base de données. |
sainet.mail_resource_ref_name |
string | Nom JNDI pour la resource MAIL (par défaut mail/sainet ) afin que l’application puisse envoyer des mails. |
A moins d’avoir des besoins spécifiques (généralement un environnement avec d’autres applications), il est recommandé de ne pas toucher à ces variables.
Accès à la base de données
Ces propriétés définissent où sont stockées les données de SAINet.
Propriété | Environnement | Type | Description |
---|---|---|---|
datbase.type |
h2,mysql,oracle | Type de base de données. | |
datbase.h2.path |
SAINET_DATABASE_H2_URL |
string | Si h2 , chemin d’accès au fichier des données (relatif au dossier <runtime> ). |
datbase.mysql.host |
SAINET_DATABASE_MYSQL_HOST |
string | Si mysql , nom de l’hôte (par défaut localhost ). |
datbase.mysql.port |
SAINET_DATABASE_MYSQL_PORT |
int | Si mysql , numéro du port (par défaut 3306 ). |
datbase.mysql.schema |
SAINET_DATABASE_MYSQL_SCHEMA |
string | Si mysql , nom du schema. |
datbase.mysql.user |
SAINET_DATABASE_MYSQL_USER |
string | Si mysql , nom d’utilisateur. |
datbase.mysql.password |
SAINET_DATABASE_MYSQL_PASSWORD |
string | Si mysql , mot de passe utilisateur. |
datbase.oracle.host |
SAINET_DATABASE_ORACLE_HOST |
string | Si oracle , nom de l’hôte (par défaut localhost ). |
datbase.oracle.port |
SAINET_DATABASE_ORACLE_PORT |
int | Si oracle , numéro du port (par défaut 1521 ). |
datbase.oracle.schema |
SAINET_DATABASE_ORACLE_SCHEMA |
string | Si oracle , nom du schema (par défaut XE ). |
datbase.oracle.user |
SAINET_DATABASE_ORACLE_USER |
string | Si oracle , nom d’utilisateur. |
datbase.oracle.password |
SAINET_DATABASE_ORACLE_PASSWORD |
string | Si oracle , mot de passe utilisateur. |
datbase.parameter.<name> |
SAINET_DATABASE_<type>_PARAMS , SAINET_DATABASE_<type>_PARAMS_FILE |
string | Paramètre <name> supplémentaire pour la base de données. |
Généralement la base de données h2
est utilisée pour les tests. Pour une base de données en production,
il est recommandé d’utiliser MariaDB (configurable avec mysql
).
Il est possible d’utiliser les variables d’environnement SAINET_DATABASE_H2_PARAMS
, SAINET_DATABASE_MYSQL_PARAMS
et SAINET_DATABASE_ORACLE_PARAMS
afin de spécifier des paramètres supplémentres. La valeur de ces variables doit être donnée sous la forme key1=value1;key2=value2;...
. Il est également
possible d’utiliser les variables SAINET_DATABASE_H2_PARAMS_FILE
, SAINET_DATABASE_MYSQL_PARAMS_FILE
et SAINET_DATABASE_ORACLE_PARAMS_FILE
pour spécifier
un fichier .properties
avec les propriétés supplémentaires.
Si une des variables *_PARAMS
est spécifiée, la variable correspondante *_PARAMS_FILE
sera ignorée.
Configuration EDMS
Ces propriétés définissent les différents emplacements qui touchent au système de fichier. Par défaut, aucune de ces
propriétés n’est obligatoire et les sous-dossiers nécessaires sont créés automatiquement dans <runtime>/edms
.
Propriété | Environnement | Type | Description |
---|---|---|---|
sainet.fs.root.ged |
SAINET_EDMS_GED |
string | Chemin absolu de l’emplacement de la GED. Par défaut dans <runtime>/edms/ged . |
sainet.fs.root.log |
SAINET_EDMS_LOG |
string | Chemin absolu de l’emplacement des fichiers de logs. Par défaut dans <runtime>/edms/log . |
sainet.fs.root.tmp |
SAINET_EDMS_TMP |
string | Chemin absolu de l’emplacement des fichiers temporaires. Par défaut dans <runtime>/edms/tmp . |
sainet.fs.root.bck |
SAINET_EDMS_BCK |
string | Chemin absolu de l’emplacement des fichiers de backups internes de la GED. Par défaut dans <runtime>/edms/bck . |
sainet.fs.root.conf |
SAINET_EDMS_CNF |
string | Chemin absolu de l’emplacement des fichiers de configuration. Par défaut dans <runtime>/edms/conf . |
En cas d’architecture multi-instances, l’emplacement de la GED doit être commun à toutes les instances. Il est donc nécessaire
de définir sainet.fs.root.ged
ou SAINET_EDMS_GED
.
De manière générale, les autres propriétés n’ont pas besoin d’êtres définies. Dans le cas où elles seraient définies, il est recommandé que les emplacements se situent sur le disque local de la machine afin de ne pas pénaliser les performances.
Configuration SMTP (serveur mail)
Ces propriétés permettent de configurer un serveur SMTP afin que SAINet puisse envoyer des emails.
La configuration du serveur SMTP peut être faite entièrement via SYS22.
Propriété | Environnement | Type | Description |
---|---|---|---|
mail.type |
none,local,simple | Type de resource. | |
mail.local.port |
SAINET_MAIL_LOCAL_PORT |
int | Si local , détermine le port local à utiliser. |
mail.simple.protocol |
SAINET_MAIL_STMP_PROTOCOL |
smtp,smtps | Si simple , protocole à utiliser (par défaut, smtp ). |
mail.simple.host |
SAINET_MAIL_STMP_HOST |
string | Si simple , nom de l’hôte. |
mail.simple.port |
SAINET_MAIL_STMP_PORT |
int | Si simple , numéro du port (optionnel). |
mail.simple.from |
SAINET_MAIL_STMP_FROM |
string | Si simple , adresse email à utiliser dans le From . |
mail.simple.user |
SAINET_MAIL_STMP_USER |
string | Si simple , nom d’utilisateur (si authentification nécessaire). |
mail.simple.password |
SAINET_MAIL_STMP_PASSWORD |
string | Si simple , mot de passe utilisateur. Implique la création (automatique) de la variable mail.smtp.auth=true . |
mail.simple.timeout |
SAINET_MAIL_SMTP_CONNECTION_TIMEOUT / SAINET_MAIL_SMTP_READ_TIMEOUT |
int | Si simple , détermine le timout (en millisecondes) pour la connexion et la lecture au serveur SMTP. Une valeur à zéro ou négative signifie un timeout infini. |
mail.* |
SAINET_MAIL_STMP_PARAMS , SAINET_MAIL_STMP_PARAMS_FILE |
Autre propriétés relatives à la configuration des mails (voir ici). |
Le type de mail local
est généralement utiliser pour les tests. Cela démarrer un serveur SMTP local sur le port spécifié et stocke les mails
envoyés par SAINet afin qu’ils puissent être vérifiés par la suite (uniquement par API).
De la même manière que pour les paramètres de la base de données, il est possible d’utiliser la variable SAINET_MAIL_STMP_PARAMS
sous éa
forme key1=value1;key2=value2;...
afin de spécifier des paramètres supplémentaires. Il est également possible d’utiliser la variable SAINET_MAIL_STMP_PARAMS_FILE
afin de pointer vers un fichier contenant les propriétés supplémentaires.
La configuration par propriétés/variables d’environnement est statique. En cas de changement, un redémarrage du serveur sera nécessaire. La configuration SYS22 est dynamique et ne nécessite pas de redémarrage.
Authentification
Ces propriétés permettent de configurer comment un utilisateur est authentifié dans SAINet.
Par défaut, SAINet utiliser un JDBCRealm
qui utilise la base de données afin d’authentifier un utilisateur.
Propriété | Environnement | Type | Description |
---|---|---|---|
realm.classname |
SAINET_REALM_CLASSNAME |
string | Nom complet de la classe du Realm. |
realm.prop.<name> |
SAINET_REALM_PARAMS , SAINET_REALM_PARAMS_FILE |
string | Propriété relative au Realm. La partie <name> sera utilisée pour créer la propriété dans la configuration. |
La propriété realm.prop.jaas-context
doit généralement être spécifiée en relation avec le Realm autorisé. Elle peut prendre une des valeurs suivantes: fileRealm
, ldapRealm
, solarisRealm
, jdbcRealm
, jdbcDigestRealm
ou pamRealm
.
Les modules d’authentification fournis peuvent être trouvés ici.
De la même manière que pour les paramètres de la base de données, il est possible d’utiliser la variable SAINET_REALM_PARAMS
sous éa
forme key1=value1;key2=value2;...
afin de spécifier des paramètres supplémentaires. Il est également possible d’utiliser la variable SAINET_REALM_PARAMS_FILE
afin de pointer vers un fichier contenant les propriétés supplémentaires.
Exemple d’authentification avec ActiveDirectory / LDAP
realm.classname=com.sun.enterprise.security.auth.realm.ldap.LDAPRealm
realm.prop.directory=<url>
realm.prop.search-filter=(&(objectClass=user)(sAMAccountName=%s)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
realm.prop.search-bind-dn=DOMAIN\\ADSynch
realm.prop.base-dn=DC=domain,DC=lan
realm.prop.group-search-filter=(&(objectClass=group)(member=%d))
realm.prop.search-bind-password=<password>
realm.prop.group-base-dn=OU=UO-DataCenter,DC=domain,DC=lan
realm.prop.jaas-context=ldapRealm
Mises à jour automatiques
Ces propriétés permettent de configurer les mises à jour automatiques de l’application. Les données d’authentification sont stockées dans le fichier infra/auth/htpasswd.
Dans le cas d’un service, la configuration des mises à jour se fait dans le fichier <runtime>/services/<service>/sainet-vars.<ext>
(les parties <service>
et <ext>
dépendent du système d’exploitation).
Propriété | Environnement | Type | Description |
---|---|---|---|
sainet.update.url |
SAINET_UPDATE_URL |
string | URL pour le téléchargement des paquets de mise à jour (par défaut https://dev2.sai-erp.net/update ). |
sainet.update.username |
SAINET_UPDATE_USERNAME |
string | Nom d’utilisateur. |
sainet.update.password |
SAINET_UPDATE_PASSWORD |
string | Mot de passe. |
sainet.update.store |
SAINET_UPDATE_STORE |
string | Chemin d’accès complet où le paquet de mise à jour doit être téléchargé. |
sainet.update.mode |
SAINET_UPDATE_MODE |
snapshot,rc,release | Mode de mise à jour désiré (voir les types de version. |
sainet.update.restart |
SAINET_UPDATE_RESTART |
boolean | Détermine si le serveur doit être redémarré (par défaut false ). |
Pour que les mises à jour soient automatiquement appliquées, il faut mettre sainet.update.restart=true
car sinon, le paquet de mise à jour est seulement téléchargé.
Serveur Redis (mobile)
Cette configuration s’applique uniquement pour la partie mobile, dans le cas où le cache redis est délocalisé.
Propriété | Environnement | Type | Description |
---|---|---|---|
sainet.mobile.redis.url |
SAINET_REDIS_URL |
string | URL du serveur Redis (par défaut redis://127.0.0.1:6379 ). |
Autres WAR
Il est possible de déployer d’autres applications au sein du serveur SAINet.
Propriété | Type | Description |
---|---|---|
server.extra-wars |
string | Liste de fichiers WAR à déployer (séparés par des virgules). |
Variables applicatives
Beaucoup d’autres variables sont utilisées au sein de SAINet, dont certaines peuvent êtres déclarées comme variables d’environnement. Une vue
complète de toutes ces variables peut être obtenue dans la tâche SYSSV
.
Toutes les variables applicatives utilisées dans SAINet sont déclarées au niveau du paramétrage:
Fichier | Description |
---|---|
sainet.properties | Contient les variables applicatives spéciales qui doivent être accessibles en dehors d’une configuration (par exemple, durant l’initialisation du serveur). |
system.properties | Contient toutes les variables applicatives utilisables de manière standard dans SAINet. Ce fichier peut être personnalisé par module afin de déclarer/modifier des variables en fonction de la modularisation. |
Toutes les propriétés préfixée par sainet.
sont également définies comme propriété système et peuvent donc être accédées dans le programme par System.getProperty(<id>)
.