定制 br/signed-request-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

br/signed-request-bundle

Composer 安装命令:

composer require br/signed-request-bundle

包简介

Symfony2 Bundle that provides request and response signing

README 文档

README

Symfony 2 bundle that provides request and response signing

Build Status Latest Stable Version SensioLabsInsight

Introduction

This bundle provides very easy request signing (verification), and automatic response signing. This means that every request has to be signed with a hash of

md5($requestUri . $content . $salt)

The response will be signed with:

md5($responseContent . $salt)

The signatures are always put (and assumed) in a header called X-SignedRequest.

Contributions are as always welcome.

Installation

Simply run assuming you have installed composer.phar or composer binary (or add to your composer.json and run composer install:

$ composer require br/signed-request-bundle

You can follow dev-master, or use a more stable tag (recommended for various reasons). On the Github repository, or on Packagist, you can always find out the latest tag.

Now add the Bundle to your Kernel:

<?php
// app/AppKernel.php

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

Configuration

To configure the bundle, edit your config.yml, or config_{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

If you put the listeners into debug mode, the request listener will always pass through the request, it will add a X-SignedRequest-Debug header though, that will either contain "true" or "false" depending on whether the signature was correct.

Providing your own signing service

You can provide your own signing service by tagging your service as br_signed_request.signing_service and implementing the Service\SigningServiceInterface. The bundle will then call the respective functions of your service. You can take a look at the default service that is used (that just uses MD5) to see how it is setup.

Using the signed request / response annotation

Instead of checking every request for a signature you can also add an annotation on a single controller function. In order to use that you would have to set request_listener_enabled to false. The same is true for signing responses. If you disable response_listener_enabled, you can use annotations to specify a controller action that should sign the response. Of course, you can also combine both annotations.

Example

<?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()
    {
        ...
    }
...

To Do & Future plans

None at the moment. Open an issue or submit a PR :)

br/signed-request-bundle 适用场景与选型建议

br/signed-request-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.73k 次下载、GitHub Stars 达 16, 最近一次更新时间为 2012 年 12 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「Symfony2」 「response」 「request」 「signing」 「Private Key」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 br/signed-request-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 br/signed-request-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 br/signed-request-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.73k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 16
  • 点击次数: 21
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 16
  • Watchers: 4
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2012-12-29