mxc-commons/mxc-routeguard

此包最新版本(v1.0.1)没有可用的许可证信息。

Zend Framework 2 模块,为路由提供匿名访问保护。

v1.0.1 2013-07-16 00:45 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:34 UTC


README

版本 1.0.1 由 Frank Hein 和 mxc-commons 团队创建。

MxcRouteGuard 是德国 maxence business consulting gmbh 通过 maxence Open Source Initiative 的一部分。

简介

MxcRouteGuard 限制未认证用户对路由的访问。MxcRouteGuard 默认与 ZfcUser 一起工作,但只要它们提供返回 bool 类型的 public function hasIdentity(),也可以使用其他身份验证服务(如 Zend\Authentication\AuthenticationService)。MxcRouteGuard 被设计得非常简单且易于扩展。

要求

功能/目标

  • 允许/拒绝匿名用户全局访问应用程序路由
  • 支持 ZfcUser 注册功能(启用时自动白名单)
  • 支持 ZfcUser 重定向功能

安装

主要设置

通过克隆项目

  1. 将此项目克隆到您的 ./vendor/ 目录。

使用 composer

  1. 在您的 composer.json 中添加此项目

    "require": {
        "mxc-commons/mxc-routeguard": "dev-master"
    }
  2. 现在运行以下命令,让 composer 下载 MxcRouteGuard:

    $ php composer.phar update

安装后

  1. 在您的 application.config.php 文件中启用它。

    <?php
    return array(
        'modules' => array(
            // ...
            'MxcRouteGuard',
        ),
        // ...
    );

选项

MxcRouteGuard 模块提供一些选项,允许您快速自定义基本功能。安装 MxcRouteGuard 后,将 ./vendor/maxence/MxcRouteGuard/config/mxcrouteguard.global.php.dist 复制到 ./config/autoload/mxcrouteguard.global.php 并根据需要更改值。

以下选项可用:

  • auth_service - 要使用的身份验证服务类名称。如果您想使用自己的身份验证服务而不是默认的 ZfcUser,则很有用。默认是 zfcuser_auth_service
  • guard_mode - 提供两种模式(whiteblack)来处理观察到的路由列表(见下文)。在白名单模式下,除了观察到的路由列表中提供的路由之外的所有路由都受到匿名访问的保护。在黑名单模式下,只有观察到的路由列表中提供的路由受到匿名访问的保护。默认是 white
  • observed_routes - 要保护的路线列表,以防止匿名访问(black 模式)或允许匿名访问(white 模式)。默认:array()
  • anonymous_redirect - 如果访问被阻止,匿名用户将被重定向到此处的路由。注意:无论保护模式如何,匿名重定向路由都会自动白名单。默认:zfcuser/login
  • strategy - 默认情况下,MxcRouteGuard 通过重定向尝试访问受保护的路由来重定向匿名用户。如果您想要其他操作而不是重定向,您可以在此处提供替代策略来处理匿名访问。默认:MxcRouteGuard\Service\Strategy\RedirectStrategy

ZfcUser 支持

如果使用 ZfcUser,并且 ZfcUser enable_registration 标志设置为 true,则 MxcRouteGuard 会自动将 zfcuser/register 白名单,无论保护模式如何。

如果路由被阻止,MxcRouteGuard 将在匿名重定向路由上应用一个 redirect 参数,如果设置了 use_redirect_parameter_if_present 为 true,则 ZfcUser 可以使用该参数。

注意

对于已认证用户,MxcRouteGuard提供了对所有路由的完全访问权限。如果您需要更详细的控制哪些用户可以访问哪些路由,请使用ZfcRbacBjyAuthorize或类似模块来替代MxcRouteGuard。

MxcRouteGuard的常见用例包括仅需要知道用户身份的演示应用程序。

许可协议

MxcRouteGuard遵循新BSD许可协议发布。请参阅license.txt