Adaptateur de programme

L'adaptateur de programme permet aux systèmes externes de communiquer avec HCL Commerce en transmettant des requêtes XML sur le protocole HTTP. L'adaptateur de programme fournit aux systèmes externes tels que les systèmes d'approvisionnement un moyen commun de communiquer avec HCL Commerce sur HTTP, permettant à HCL Commerce d'agir en tant que fournisseur de ces systèmes, pour les transactions des acheteurs et des fournisseurs.

L'adaptateur de programme gère les requêtes XML entrantes en effectuant les actions suivantes :

  • Reconnaissance de la requête et vérification s'il s'agit d'une requête XML. Si les trois attributs suivants de la requête sont pris en charge, elle peut être distinguée comme une requête XML.
    • content-type
    • méthode
    • codage de caractères

Les attributs de requête pris en charge sont spécifiés dans la configuration de l'adaptateur.

  • Extraction du flux d'entrée de la requête.
  • Appeler le mappeur de message et transmettre le contenu du flux d'entrée.
  • Réception de l'objet CommandProperty représentant une commande HCL Commerce renvoyée par le mappeur de message.
  • Détermination du format de périphérique approprié dans lequel générer la réponse.
  • Exécution de la commande.
  • Envoi d'un message de réponse XML, créé par un fichier JSP et basé sur la viewname commande spécifiée par la commande exécutée et le format de périphérique de la requête reçue.

Chaque requête est traitée comme une session distincte. Les informations d'identification du message sont spécifiées dans la zone de contrôle du message. Par défaut, l'adaptateur de programme vérifie l'ID d'utilisateur et les paramètres de mot de passe pour déterminer l'authenticité d'une requête. L'adaptateur de programme ne prend pas en charge les messages hérités, car les messages hérités ne prennent pas en charge la spécification des informations d'identification.

Le cycle de vie de l'adaptateur de programme existe dans toute l'instance HCL Commerce. Il est initialisé lorsqu'une instance est démarrée, à moins que ses paramètres de configuration ne soient supprimés ou que l'adaptateur ne soit pas activé, et il réside tant que l'instance s'exécute.

Sécurité de l'adaptateur de programme pour les requêtes HTTP

Ce niveau de sécurité exige qu'une requête envoyée HCL Commerce contient un IDENTIFIANT d'utilisateur et un mot de passe. Si le mot de passe ne correspond pas à l'ID utilisateur spécifié, une exception de sécurité est levée et la requête est rejetée. Si l'ID d'utilisateur et le mot de passe ne sont pas spécifiés dans la requête, la requête est traitée en tant que client visiteur. Cela signifie que les commandes qui doivent être autorisées avant l'exécution doivent avoir les informations d'identification spécifiées dans la requête. Cette forme de sécurité se comporte de la même manière que les requêtes HTTP effectuées à partir d'un client de navigateur.

La classe qui implémente ce niveau de sécurité est messaging.programadapter.security.CredentialsSpecifiedProgramAdapterSessionContextImpl.

La validation des informations d'identification utilise la même technique utilisée lorsque les clients interagissent avec HCL Commerce via un navigateur. Le fait que l'enregistrement de l'utilisateur est géré par HCL Commerce ou par un logiciel fournisseur est pris en compte.

Tous les messages d'intégration XML pris en charge de HCL Commerce prennent en charge ce niveau de sécurité, bien que la spécification des informations d'identification ne soit pas obligatoire. Les messages hérités ne sont pas pris en charge par cette implémentation de la sécurité.

Sécurité de l'adaptateur de programme pour IBM MQ

Pour modifier le niveau de sécurité, vous devez modifier la valeur de l'attribut de classe dans l'élément SessionContext de la configuration de l'adaptateur IBM MQ.

Avant que la requête ne soit exécutée par le contrôleur Web, ce dernier détermine les informations d'identification sous lesquelles la requête doit s'exécuter. Ceci est déterminé par la classe spécifiée, qui utilise l'objet CommandProperty pour déterminer les informations d'identification de la requête.

Deux niveaux de sécurité sont disponibles :

Niveau 1
Sécurité limitée.

Ce niveau de sécurité est activé par défaut lors de l'installation. Il suppose que toutes les requêtes doivent être traitées par un ID utilisateur par défaut, sauf indication contraire. Si la demande doit être traitée par un autre ID utilisateur, cet ID utilisateur est spécifié dans la demande. Le mot de passe de l'ID d'utilisateur spécifié n'est pas requis et la demande est traitée par HCL Commerce à l'aide des informations d'identification de l'utilisateur spécifié.

La classe qui implémente ce niveau de sécurité est messaging.programadapter.security.DefaultCredentialsProgramAdapterSessionContextImpl.

Niveau 2
ID d'utilisateur et mot de passe requis pour chaque requête.

Ce niveau de sécurité exige qu'une requête envoyée à HCL Commerce contienne un ID d'utilisateur et un mot de passe. Si le mot de passe ne correspond pas à l'ID utilisateur spécifié, une exception de sécurité est levée et la requête est rejetée. Si l'ID d'utilisateur et le mot de passe ne sont pas spécifiés dans la requête, la requête est traitée en tant que client visiteur. Cela signifie que les commandes qui doivent être autorisées avant l'exécution doivent avoir les informations d'identification spécifiées dans la requête.

La classe qui implémente ce niveau de sécurité est messaging.programadapter.security.CredentialsSpecifiedProgramAdapterSessionContextImpl.

La validation des informations d'identification utilise la même technique utilisée lorsque les clients interagissent avec HCL Commerce via un navigateur. Le fait que l'enregistrement de l'utilisateur est géré par HCL Commerce ou par un logiciel fournisseur est pris en compte.

Tous les messages d'intégration XML pris en charge de HCL Commerce prennent en charge ce niveau de sécurité, bien que la spécification des informations d'identification ne soit pas obligatoire.

Vous pouvez également créer votre propre classe de sécurité personnalisée. La seule restriction est qu'elle doit implémenter l'interface ProgramAdapterSessionContext.