Maison >développement back-end >tutoriel php >Comment se connecter à un service Web protégé par WS-Security à l'aide de PHP ?

Comment se connecter à un service Web protégé par WS-Security à l'aide de PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 02:45:03746parcourir

How to Connect to a WS-Security Protected Web Service Using PHP?

Connexion au service Web protégé WS-Security avec PHP

Problème :

Connexion à un service Web protégé par mot de passe à l'aide de PHP et authentification avant de créer une demande s'avère être un défi. Ni la définition du service en tant que SoapClient ni SoapServer ne semble se connecter au site distant avec succès.

Solution :

Pour établir une connexion à un service Web protégé par WS-Security, utilisez SoapHeader pour créez un en-tête d'authentification conforme à WS-Security.

Implémentation :

Étendez la classe SoapHeader en créant une classe personnalisée qui définit les spécificités de l'en-tête WS-Security.

class WsseAuthHeader extends SoapHeader {
  // ... (your code to generate the WS-Security header)
}

Instanciez la classe d'en-tête personnalisée avec les informations d'identification nécessaires (nom d'utilisateur, mot de passe) et transmettez-la au constructeur SoapClient.

$wsse_header = new WsseAuthHeader($username, $password);
$client = new SoapClient('service URL', ['__setSoapHeaders' => [$wsse_header]]);

Remarques supplémentaires :

  • Pour les cas impliquant WS-Security avec un nom occasionnel et un horodatage, reportez-vous à une autre implémentation dans la section réponse.
  • Assurez-vous de comparer la méthode avec celle fournie par Stack Overflow sur le lien spécifié dans la réponse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn