br/signed-request-bundle

Symfony2 Bundle,提供请求和响应签名功能

安装数: 1,722

依赖项: 0

建议者: 0

安全: 0

星标: 16

关注者: 6

分支: 2

开放问题: 2

类型:symfony-bundle

0.5.1 2013-07-04 20:59 UTC

This package is auto-updated.

Last update: 2024-09-06 09:01:00 UTC


README

Symfony 2 bundle,提供请求和响应签名功能

Build Status Latest Stable Version SensioLabsInsight

简介

此bundle提供非常简单的请求签名(验证)和自动响应签名。这意味着每个请求都必须使用哈希值进行签名:

md5($requestUri . $content . $salt)

响应将使用以下方式签名:

md5($responseContent . $salt)

签名始终放置(并假定)在名为 X-SignedRequest 的头部中。

贡献总是受欢迎。

安装

只需运行,假设您已安装composer.phar或composer二进制文件(或将它添加到您的composer.json并运行composer install)

$ composer require br/signed-request-bundle

您可以使用dev-master,或者使用更稳定的标签(出于各种原因推荐)。在Github仓库Packagist上,您总是可以找到最新的标签。

现在将Bundle添加到您的Kernel

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new BR\SignedRequestBundle\BRSignedRequestBundle(),
        // ...
    );
}

配置

要配置此bundle,请编辑您的config.ymlconfig_{environment}.yml

# Signed Request Bundle
br_signed_request:
    salt: SALT_HERE
    debug: %kernel.debug%
    request_listener_enabled: true      # default
    response_listener_enabled: true     # default
    signature_mismatch:                 # optional
        status_code: 400
        response: Failed validation

如果您将监听器置于debug模式,则请求监听器将始终通过请求,但会添加一个X-SignedRequest-Debug头部,该头部将包含“true”或“false”,具体取决于签名是否正确。

提供自己的签名服务

您可以通过标记服务为br_signed_request.signing_service并实现Service\SigningServiceInterface来提供自己的签名服务。然后,bundle将调用您服务的相应函数。您可以通过查看默认服务(仅使用MD5)的设置来了解如何设置。

使用签名请求/响应注解

您也可以在单个控制器函数上添加注解来代替检查每个请求的签名。为了使用该注解,您必须将request_listener_enabled设置为false。对于签名响应也是如此。如果您禁用response_listener_enabled,则可以使用注解指定应签名的控制器操作。当然,您也可以结合使用这两个注解。

示例

<?php

namespace Acme\YourBundle\Controller;

use BR\SignedRequestBundle\Annotations\SignedRequest;
use BR\SignedRequestBundle\Annotations\SignedResponse;

...

    /**
     * @SignedRequest
     */
    public function fooAction()
    {
        ...
    }

    /**
     * @SignedResponse
     */
    public function barAction()
    {
        ...
    }

    /**
     * @SignedRequest
     * @SignedResponse
     */
    public function bazAction()
    {
        ...
    }
...

待办事项与未来计划

目前没有。提出问题或提交PR :)