farvest/security-bundle

安全组件测试,提供登录页面访问管理页面。

安装: 28

依赖: 0

建议者: 0

安全: 0

星标: 0

分支: 0

类型:symfony-bundle

2.0.12 2022-10-19 12:17 UTC

README

Flagstone的安全组件。为管理员访问创建登录和注销根目录

安装

使用composer管理器安装它

composer install flagstone/security-bundle

要将用户实体添加到您的数据库,您只需创建一个标准迁移。

php bin/console make:migration
php bin/console doctrine:migrations:migrate

导入路由

在您的应用程序的路由文件中,添加以下内容

flagstone_security:
    resource: '@FlagstoneSecurityBundle/Resources/config/routes_security.yaml'
    prefix:
        en: ''
        fr: '/fr'
        de: '/de'

flagstone_security_user:
    resource: '@FlagstoneSecurityBundle/Resources/config/routes_user.yaml'
    prefix:
        en: '/admin'
        fr: '/fr/admin'
        de: '/de/admin'

该组件定义了两个不同的路由。第一个是用于访问用户管理,第二个为/login/logout路由提供路由。因此,您可以定义这两个路由的不同前缀。

配置

此组件使用Symfony安全组件。因此,您只需使用security.yaml文件配置安全设置,例如以下示例

security:
  enable_authenticator_manager: true
  password_hashers:
    Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
  providers:
    user:
      entity:
        class: Flagstone\SecurityBundle\Entity\User
        property: username
  firewalls:
    dev:
      pattern: (_(profiler|wdt)|css|images|js)/
      security: false
    admin:
      lazy: true
      logout:
        path: logout
        target: login
      provider: user
      custom_authenticator:
        - Flagstone\SecurityBundle\Security\UserFormAuthenticator
    main:
      lazy: true
      security: false
  role_hierarchy:
    ROLE_COMMENT:   ROLE_GUEST
    ROLE_BLOG:      ROLE_COMMENT
    ROLE_ADMIN:     ROLE_BLOG
    ROLE_DEV:       [ROLE_GUEST, ROLE_COMMENT, ROLE_BLOG, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
  access_control:
    - { path: ^/admin/login, roles: PUBLIC_ACCESS}
    - { path: ^/admin/user, roles: ROLE_DEV}
    - { path: ^/admin, roles: ROLE_ADMIN}

该组件使用3个参数来定义登录表单的路由、成功登录的路由以及您想要的角色列表。

availableRoles:
  - 'ROLE_DEV'
  - 'ROLE_ADMIN'
  - 'ROLE_USER'
  - 'ROLE_GUEST'

fs_adminIndex: 'fs_admin_index'
fs_loginRoute: 'fs_admin_login'

已设置默认值,但您可以在services.yaml中覆盖这些参数。

使用方法

创建用户

您可以使用嵌入式用户创建命令行。您可以创建第一个管理员用户

php bin/console flagstone-security:create-admin

回答所有问题后,将创建一个新用户,具有管理员权限。

待办事项

  • 添加日志系统以了解谁做了什么。
  • 添加配置以了解角色用户可以做什么(谁可以删除,谁可以编辑...)。按角色定义操作。

许可

MIT