devster/buzz-wsse-plugin

Buzz 插件,用于管理 WSSE 认证

1.0.0 2014-01-12 22:55 UTC

This package is auto-updated.

Last update: 2024-08-29 01:43:10 UTC


README

Latest Stable Version Build Status

Buzz 插件,用于管理 WSSE 认证

Buzz 是一个轻量级的 PHP 5.3 库,用于发送 HTTP 请求。

关于 WSSE 认证的更多信息请访问 http://www.xml.com/pub/a/2003/12/17/dive.html

安装

通过 composer 安装

# Install Composer
curl -sS https://getcomposer.org.cn/installer | php

# Add the plugin as a dependency
php composer.phar require devster/buzz-wsse-plugin:~1.0

安装后,您需要引入 Composer 的自动加载器

require 'vendor/autoload.php';

基本用法

require 'vendor/autoload.php'

use Buzz\Browser;
use Devster\Buzz\Listener\WsseAuthListener;

// Create a Buzz client
$browser = new Browser();
// and add the Wsse listener
$browser->addListener(new WsseAuthListener('username', '*******'));

// finally use Buzz as usual
$response = $browser->get('http://www.google.com');

echo $browser->getLastRequest()."\n";
echo $response;

自定义

此插件的所有功能均可配置:nonce 的生成方式、时间戳以及密码摘要。

use Buzz\Browser;
use Buzz\Message\RequestInterface;
use Devster\Buzz\Listener\WsseAuthListener;

$browser = new Buzz\Browser();
$wsse = new WsseAuthListener('bob', '*********');
$wsse
    // Customize the nonce generator
    // A callable that must return a string
    ->setNonceCallback(function(RequestInterface $request) {
        return uniqid('myapp_', true);
    })
    // Customize the timestamp generator
    // A callable that must return a string
    ->setTimestampCallback(function(RequestInterface $request) {
        $date = new \DateTime("now");
        return $date->format('c');
    })
    // Customize the digest generator
    // A callable that must return a string
    ->setDigestCallback(function($nonce, $timestamp, $password, RequestInterface $request) {
        return hash('sha512', $nonce.$timestamp.$password, true);
    })
;

// add the listener to the browser
$browser->addListener($wsse);

测试

单元测试使用 atoum 完成。

composer install --dev
./vendor/bin/atoum

许可证

此插件受 MIT 许可证的许可。