Build Status Coverage Status SensioLabsInsight
This plugin integrates WSSE functionality into Guzzle Bundle, a bundle for building RESTful web service clients.
- PHP 7.0 or above
- Guzzle Bundle
Using composer:
{ "require": { "gregurco/guzzle-bundle-wsse-plugin": "dev-master" } }
$ composer require gregurco/guzzle-bundle-wsse-plugin
Plugin will be activated/connected through bundle constructor in app/AppKernel.php
, like this:
new EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle([ new Gregurco\Bundle\GuzzleBundleWssePlugin\GuzzleBundleWssePlugin(), ])
The registration of bundles was changed in Symfony 4 and now you have to change src/Kernel.php
to achieve the same functionality.
Find next lines:
foreach ($contents as $class => $envs) { if (isset($envs['all']) || isset($envs[$this->environment])) { yield new $class(); } }
and replace them by:
foreach ($contents as $class => $envs) { if (isset($envs['all']) || isset($envs[$this->environment])) { if ($class === \EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle::class) { yield new $class([ new \Gregurco\Bundle\GuzzleBundleWssePlugin\GuzzleBundleWssePlugin(), ]); } else { yield new $class(); } } }
# app/config/config.yml eight_points_guzzle: clients: api_payment: base_url: "http://api.domain.tld" # define headers, options # plugin settings plugin: wsse: username: "acme" password: "pa55w0rd" created_at: "-10 seconds" # optional
<?php # Optional: Set third parameter by a expression (if not, current time will be used automatically) # http://php.net/manual/en/datetime.formats.relative.php # Useful if there is a small difference of time between client and server # DateTime object will be regenerated for every request $wsse = new \Gregurco\Bundle\GuzzleBundleWssePlugin\Middleware\WsseAuthMiddleware($username, $password); $stack = \GuzzleHttp\HandlerStack::create(); // Add the wsse middleware to the handler stack. $stack->push($wsse->attach()); $client = new \GuzzleHttp\Client(['handler' => $stack]); $response = $client->get('http://www.8points.de');
This middleware is licensed under the MIT License - see the LICENSE file for details