skyline/cms-security

v8.0.7 2023-03-14 09:28 UTC

This package is auto-updated.

Last update: 2024-09-14 13:02:28 UTC


README

安装此包,可轻松将skyline/security包应用于您的应用程序。
它包含一个预配置,您可以根据需求轻松调整。

编译器注解

此包通过另一个注解编译器扩展了您的应用程序编译。
注解可以放置在您的动作控制器中。在其他任何地方它们都不会影响编译。

<?php
use Skyline\Application\Controller\AbstractActionController;

/**
 * @annotation ....  Class annotations are valid for all action methods.
 */
class MyActionController extends AbstractActionController {
    
    /**
     * @annotation ....  This annotation is only valid for the action myAction
     */
    public function myAction() {
        // ...
    }
}

这些注解可用:
身份识别

  • @reliability <数字或IdentityInterface::RELIABILITY_*常量>(不允许多个)
    需要最小可靠性。
  • @token <字符串>(允许多个,如果有一个匹配,则条件满足)
    需要特定的身份令牌名称。
  • @apply-identity
    强制验证身份。

认证

  • @user <字符串>(允许多个,如果有一个匹配,则条件满足)
    需要通过其名称指定的特定用户。
  • @group <字符串>(允许多个,如果有一个匹配,则条件满足)
    需要认证用户是特定组的成员

授权

  • @role <字符串>(允许多个,如果全部匹配,则条件满足)
    需要认证用户具有特定角色

请注意,根据您的需求,并非所有安全过程都会执行
如果您只需要可靠性和令牌,则不会执行认证!
有关更多信息,请参阅skyline/security

编译数据库

Skyline编译器允许您使用--with-pdo编译标志。
使用此标志编译,此包将尝试创建允许完整工作登录系统的数据库表。

  • SKY_USER
    表包含用户所需的所有必要信息,当然,您也可以轻松扩展它。
  • SKY_ROLE
    授权部分是角色,谁有权访问哪个动作。
  • SKY_GROUP
    用户可以是一个或多个组的成员。这也允许授权动作。
  • SKY_USER_GROUP
    中间表:哪个用户是哪个组的成员
  • SKY_USER_ROLE
    中间表:哪个用户拥有哪些角色
  • SKY_GROUP_ROLE
    中间表:哪个组拥有哪些角色

因此,如果一个用户是某个组的成员,则用户继承该组分配的所有角色。

安全特性

<?php
trait SecurityTrait {
    // ....
}

安全特性可用于任何您想动态访问安全功能的类。