当前位置: 首页 > 知识库问答 >
问题:

Symfony权限改造禁止用户使用正确的角色

子车峰
2023-03-14

security.yml:

role_hierarchy:
    admin: [test, simple]

providers:
    database:
        entity: { class: UserBundle:User, property: username }

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt|error)|css|images|js)/
        security: false

    prod:
        pattern: ^/
        provider: database
        anonymous: true
        form_login:
            login_path: public_login
            check_path: public_login_check
            default_target_path: dashboard
            always_use_default_target_path: true
            csrf_provider: form.csrf_provider
        logout:
            path: logout
            target: public_login

access_control:
    - { path: ^/(.+), roles: admin }
    - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }

当我登录,我得到403禁止例外。然后我检查分析器/安全性,角色看起来像这样:

Roles   [ROLE_USER, admin]

当我将访问控制切换到:

- { path: ^/(.+), roles: ROLE_USER }

它工作正常。

我的目标是删除内置角色(如ROLE_USER,ROLE_ADMIN等),因为我正在为现有数据库编写应用程序,其中包含用户已经定义的角色,所以我想使用它们。

共有2个答案

党星鹏
2023-03-14

您没有为您应该更改的安全配置中的角色使用正确的语法

- { path: ^/(.+), roles: admin }

到:

 - { path: ^/(.+), roles: ROLE_ADMIN }
元胡媚
2023-03-14

我已经确认需要“ROLE_u2;”前缀,因为symfony默认使用自己的RoleVoter实现。

要去掉这个前缀,需要自定义RoleVoter。要做到这一点,您需要创建实现RoleVoterInterface的自定义类,使其成为服务,并用“security.voter”标记它,以强制安全层使用它,而不是默认层。

阅读更多关于在这个例子中实现自己的RoleVoters的信息。

 类似资料:
  • 有些企业会对向用户发送的营销内容进行严格的管理——基层的运营或营销经理拟定的活动必须经过上级管理者的审批,方可生效执行。为此,诸葛的智能触达中提供了基于用户角色的触达活动权限管理,以支撑上述的企业需求。 如果您的团队需要使用权限控制,可通过以下步骤开启使用: 开启权限控制:智能触达的权限控制默认是关闭的,需要开启后方能使用; 分配用户角色:为团队成员分别分配设定「管理员」和「运营人员」角色; 开始

  • 6.0 版本开始,管理员可以在用户管理界面为一个用户赋予一个角色,不同角色可以配置不同权限,目前支持 10 种权限。 6.1 版本开始,我们添加了一个新的权限 relo_quota(角色配额),该权限用来给某个用户的角色设置空间配额。例如,我们可以通过添加 'role_quota': '100g' 为 employee 角色设置100GB的空间配额,同时其他用户还是使用默认的空间配额。 Seafi

  • 假设一个web安全系统由5个表组成,这些表处理web应用程序的授权部分: 用户 角色 权限 角色权限(角色和权限之间的多对多) 用户角色(用户和角色之间的多对多) 有时,用户需要被授予对权限规则的短时间访问权限,然后再次删除,例如当某人外出度假,而其他人需要接管他的任务时。简单的回答是创建一个新角色,将该角色分配给用户,当不再需要该角色时,从用户中删除该角色或完全删除该角色。 我不想一直为这样的事

  • 情景: 我们有一个多租户应用程序,其中每个租户都有自己的模式。有一个公共模式,其中存在一个包含每个租户记录的表。因此,有一个超级管理员可以创建租户,并将管理员分配给新创建的租户。 为了实现RBAC(基于角色的访问控制),我计划将每个角色表放入租户模式,并实现一些中间件来检查授权。在孤立的模式环境中,这是一个好的体系结构吗?

  • 主要内容:一、用户管理,二、权限管理,三、权限表,四、角色管理一、用户管理 1.创建用户 用户名参数表示新建用户的账户,由用户(User) 和主机名(Host) 构成,默认host为'%',表示所有主机(ip)都可登录,也可以使用如'lxc'@'192.168.%.%'的形式 可以不指定用户密码,无需密码登录; 2.查看用户 3.修改用户 4.删除用户 1.使用DROP USER语句来删除用户时,必须用于DROP USER权限。DROP USER语句的基本语

  • 本文向大家介绍Android权限如何禁止以及友好提示用户开通必要权限详解,包括了Android权限如何禁止以及友好提示用户开通必要权限详解的使用技巧和注意事项,需要的朋友参考一下 Android权限 Android安全架构规定:默认情况下,任何应用都没有权限执行对其他应用、操作系统或用户有不利影响的任何操作。这包括读写用户的私有数据(联系人,短信,相册,位置)、读写其他应用的文件、执行网络访问、使