【问题标题】:Update a security identity (ACL) in Symfony2在 Symfony2 中更新安全身份 (ACL)
【发布时间】:2015-03-04 04:16:22
【问题描述】:

我正在使用 FOSUserBundle 来处理我的应用用户。用户可以更新他们的用户名或被管理员删除。在那方面一切都很好,我的问题与 Symfony ACL 有关。

每个用户在创建时都有自己的安全实体。例如,如果我使用 shigeno 用户名创建一个帐户,它会在数据库(acl_security_identities 表)中产生类似的结果:

id   | identifier                    | username
...  | ...                           | ...
23   | my\Bundle\Entity\User-shigeno | 1

(ACL 身份使用用户名!哎呀...为什么不用 id?)

现在,我,shigeno,将我的用户名更改为 hondaAcl_security_identities 表保持原样,所以我的所有权限都被删除了(或者更准确地说,他们没有和我一起移动)。

当然,我可以添加新的 ACL。但是:

  1. 这很痛苦。我必须复制所有以前的 ACL,更不用说在更新或删除用户时我无法轻松访问所有安全对象。
  2. 这是一个很大的安全漏洞,因为如果没有删除以前的 ACL 并且新来宾选择了用户名 shigeno...BAM,圣诞节快到了。

如何更新(如果我删除用户则删除)ACL 安全身份?

注意:我见过this similar subject。它没有回答更新问题,此外,在这种情况下执行原始 SQL 请求是非常不安全的(是的,它也很丑陋)。

【问题讨论】:

    标签: php security symfony acl


    【解决方案1】:

    点击此链接:

    https://github.com/symfony/symfony/commit/8d39213f4cca19466f84a5656a199eee98602ab1

    您必须编写一个 Listner,在 preUpdate 事件上更新 acl。这在上面的提交中有所描述。

    Greetzzz :)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多