Guzzle Bundle WSSE Plugin
This plugin integrates WSSE functionality into Guzzle Bundle, a bundle for building RESTful web service clients.
Requirements
- PHP 7.0 or above
- Guzzle Bundle
Installation
Using composer:
composer.json
{
"require": {
"gregurco/guzzle-bundle-wsse-plugin": "dev-master"
}
}
command line
$ composer require gregurco/guzzle-bundle-wsse-plugin
Usage
Enable bundle
# app/AppKernel.php
new EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle([
new Gregurco\Bundle\GuzzleBundleWssePlugin\GuzzleBundleWssePlugin(),
])
Basic configuration
# 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
Usage with guzzle
<?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');
License
This middleware is licensed under the MIT License - see the LICENSE file for details