Hardis - Séquence de feuilletage |
---|
Volet | ||||
---|---|---|---|---|
| ||||
subscribersConf.ymlPar défaut, un fichier subscribersConf.yml vide est présent dans le sous-répertoire extdConfig de l'archive de l'application. Ce fichier au format YAML contient la description des souscripteurs Adélia à exécuter. Il est nécessaire de le compléter si l'on veut démarrer statiquement des souscripteurs (c'est-à-dire sans passer par les API de création REST). |
Volet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Configuration du runtime AMBSSElle est regroupée dans le fichier Spring boot application.yml (et son pendant application-dev.yml) présents dans le sous-répertoire config de l'archive de l'application. Ces deux fichiers contiennent des propriétés standards de comportement d'application Web Spring Boot ainsi que des propriétés spécifiques à l'AMBSS.
application-dev.ymlCe fichier est chargé lorsque l'AMBSS est lancé avec le profil de développement (via le fichier de commande ambss-dev.bat / ambss-dev.sh). Ce profil est à utiliser lorsque l'utilisateur est en phase de développement de ses souscripteurs Adélia. Avec ce profil, certains comportements sont forcés :
Propriétés Spring bootSans décrire exhaustivement l'ensemble des propriétés mises à disposition (voir documentation Spring boot sur le sujet), on retiendra :
Propriétés AMBSSPar défaut, le fichier de configuration des souscripteurs subscribersConf.yml à utiliser doit être passé en ligne de commande au lancement de l'ABMSS. La propriété 'ambss.subscribers.configuration' permet de fixer le chemin d'un fichier de configuration. Ce chemin peut être soit absolu, soit relatif au répertoire racine de l'AMBSS (le répertoire parent du sous-répertoire config où se trouve le fichier application-dev.yml). La propriété 'ambss.subscribers.writer' permet d'activer la sauvegarde des créations et modifications des souscripteurs par les web services REST dans le fichier de configuration des souscripteurs Adélia (la valeur par défaut est "false"). Si aucun fichier de configuration des souscripteurs n'est spécifié au lancement de l'AMBSS, un fichier subscribersConf.yml est créé dans le répertoire racine de l'AMBSS (le répertoire parent du sous-répertoire config où se trouve le fichier application-dev.yml).
application.ymlCe fichier est chargé lorsque l'AMBSS est lancé sans profil (via le fichier de commande ambss.bat / ambss.sh). Le profil par défaut correspond au profil de production. Propriétés Spring bootSans décrire exhaustivement l'ensemble des propriétés mises à disposition (voir documentation Spring boot sur le sujet), on retiendra :
Propriétés AMBSSPar défaut, le fichier de configuration des souscripteurs subscribersConf.yml à utiliser doit être passé en ligne de commande au lancement de l'ABMSS. La propriété 'ambss.subscribers.configuration' permet de fixer le chemin d'un fichier de configuration. Ce chemin peut être soit absolu, soit relatif au répertoire racine de l'AMBSS (le répertoire parent du sous-répertoire config où se trouve le fichier application.yml). La propriété 'ambss.subscribers.writer' permet d'activer la sauvegarde des créations et modifications des souscripteurs par les services web REST dans le fichier de configuration des souscripteurs Adélia (la valeur par défaut est "false"). Si aucun fichier de configuration des souscripteurs n'est spécifié au lancement de l'AMBSS, un fichier subscribersConf.yml est créé dans le répertoire racine de l'AMBSS (le répertoire parent du sous-répertoire config où se trouve le fichier application-dev.yml).
Activation de l'authentificationL'activation de l'authentification par jeton JWT se fait avec la propriété 'ambss.security.enabled'. L'authentification est activée par défaut. RôlesL'AMBSS définit deux rôles distincts pour les droits d'utilisation des services web REST :
Il est possible de définir les noms des rôles utilisateur et administrateur grâce aux propriétés 'ambss.security.role-names.user-role' (valeur par défaut : "USER") et 'ambss.security.role-names.admin-role' (valeur par défaut : "ADMIN"). Jeton JWTIl est possible de définir les caractéristiques du jeton JWT attendu.
Serveur d'authentification autonomeAdélia Studio fournit un serveur d'authentification compatible avec l'AMBSS. Ce service (ou serveur) d'authentification peut-être déployé de façon autonome. Pour cela, il faut copier le fichier %adeliws%/javarun/jwtProviderStandAlone/jwtProviderStandAlone.war à l'emplacement ad hoc du serveur d'applications (Tomcat par exemple). ConfigurationLa configuration du service se fait via un fichier (jwtProv.properties) externalisé sous la forme d'une ressource jndi de type URL via l'alias url/jwtProv avec une fabrique pointant sur la classe com.hardis.common.JndiURLPropsFactory. Exemple :Déclaration d'une ressource jndi de nom url/jwtProv de type URL utilisant la fabrique com.hardis.common.JndiURLPropsFactory. L'emplacement du fichier jwtProv.properties contenant les informations de configuration du service est fixé à l'aide de l'URL : file:///d:/extcfg/jwtProv.properties Dans le sous répertoire de l'application web jwtProviderStandAlone installée, créer un fichier META-INF\context.xml :
Le fichier jwtProv.properties référencé doit déclarer les valeurs pour les propriétés des objets JwtProviderConfig et JwtJEELoginModule, de la façon suivante :
Le service requiert également un Keystore pour le chiffrement du jeton. Ce Keystore est de facto externalisé sous la forme d'une ressource jndi de type URL utilisant la fabrique com.hardis.common.JndiURLFactory via l'alias url/adelRSJwtSecurity. Exemple :Déclaration d'une ressource jndi de nom url/adelRSJwtSecurity de type URL utilisant la fabrique com.hardis.common.JndiURLFactory. L'emplacement du Keystore est fixé à l'aide de l'URL : file:///d:/extcfg/RSJwtSecurity.key
Un Keystore par défaut (nommé RSJwtSecurity.key), contenant les clés de l'algorithme de chiffrement asymétrique RSA256 et permettant de chiffrer ou de valider un jeton, est livré par défaut dans le répertoire extdConfig de la distribution standard de l'AMBSS (%ADELIWS%\distrib\AdeliaBrokerSubscribersService). Le même Keystore doit être utilisé par le service d'authentification (chiffrement du jeton) et par l'AMBSS (validation du jeton). Le Keystore fourni par défaut peut-être remplacé par un autre Keystore qu'il faut créer à l'aide de la commande suivante : java -cp jwtProvider-{version}.jar;bcprov-jdk15-1.45.jar com.hardis.jwtprovider.JwtKeyTool -generate pathto\RSJwtSecurity.key Le service requiert ensuite d'associer les utilisateurs (leurs credentials) aux rôles. Exemple :La déclaration des utilisateurs et des rôles sous Tomcat se fait dans le fichier de configuration conf\tomcat-users.xml.
Enfin le service d'authentification autonome requiert par défaut un transport sécurisé (HTTPS). Une configuration doit par conséquent être mise en œuvre au niveau du Container Java EE pour satisfaire ce besoin.
Création d'un jetonLe service a pour rôle d'authentifier un utilisateur et, en cas de succès de l'authentification, de lui délivrer un jeton JWT. A l'aide de ce dernier, et pendant toute la période de validité du jeton, l'utilisateur peut s'authentifier auprès du serveur de ressources et accéder aux ressources qui lui sont autorisées. Le service d'authentification est accessible via la Servlet nommée JWTServlet. Les identifiants de connexion (credentials) sont passés en paramètres de la requête. Exemple : https://host:port/wtProviderStandAlone/JWTServlet?login=user&password=pwd Remarque : Il est également possible d'appeler la servlet en POST et de lui transmettre les identifiants de connexion dans le corps (payload) de la requête à la manière d'un formulaire HTML. Pour des raisons évidentes de sécurité, l'utilisation du protocole HTTPS est fortement conseillée pour accéder à la Servlet JWTServlet. La partie authentification propose différents modules : un module d'authentification LDAP, un module d'authentification Java EE et un module d'authentification Adélia. Il est possible de chaîner plusieurs modules d'authentification. Le choix du ou des modules se fait via la propriété jwtLoginModuleName de l'objet JwtProviderConfig, décrit dans le fichier de configuration /WEB-INF/beans.xml de l'application hébergeant le service d'authentification. Si le module d'authentification reconnaît l'utilisateur, la phase de création du jeton JWT entre en jeu. Celle-ci repose sur :
En cas d'échec de l'authentification, le service retourne dans le corps de sa réponse, non plus un jeton JWT, mais une chaîne commençant par [ERROR], suivie d'un message explicatif. |
Hardis - Haut de page |
---|
↑ Haut de page |
Ancre | ||||
---|---|---|---|---|
|
Volet | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||
bean-context.xmlLors du traitement de la charge utile d'un message dans un programme EADELIA (bloc onMessage), l'ordre BRK_RECUP_MSG permet de récupérer cette donnée dans une variable Adélia REF_CLASSE. Lorsque cette donnée est alphanumérique ou un tableau d'octets, une désérialisation JSON est effectuée en utilisant le convertisseur par défaut de la librairie tierce Jackson. DescriptionIl est possible de définir d'autres convertisseurs en modifiant ses propriétés dans le fichier bean-context.xml. La liste des propriétés (description et valeur par défaut) liées à la désérialisation est disponible ici : https://github.com/FasterXML/jackson-databind/wiki/Deserialization-features Il faut déclarer un bean de type com.hardis.adelia.webservice.CustomObjectMapper avec les propriétés à fixer (le fichier peut contenir plusieurs déclarations de bean, chacun ayant un id différent). Exemple : DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES devient DeserFailOnUnknownProperties.
UtilisationUn bean décrit sera utilisé par un souscripteur à l'exécution de l'ordre BRK_RECUP_MSG. Pour cela, il est nécessaire de spécifier le bean à utiliser dans la description du souscripteur via la propriété 'config/adeliaPgm/customObjectMapper' : celle-ci doit avoir comme valeur l'identifiant du bean.
|
Hardis - Haut de page |
---|
↑ Haut de page |
Volet | ||||
---|---|---|---|---|
| ||||
Configuration du runtime AdéliaElle est regroupée dans les fichiers présents dans le sous-répertoire extdConfig de l'archive de l'application, à savoir :
Cliquez sur les liens ci-dessus pour la description de leur contenu. |
Hardis - Haut de page |
---|
↑ Haut de page |