代码之家  ›  专栏  ›  技术社区  ›  mogoman

fr3d LdapBundle-阻止登录

  •  1
  • mogoman  · 技术社区  · 13 年前

    我正在使用LDAP对我的用户进行身份验证(回退到FOS用户捆绑包)。一切正常,我可以登录。

    然而,这产生了一个“新的”问题。我希望控制谁可以使用FOS登录应用程序,但使用LDAP控制他们的密码。

    我使用角色进行了尝试:

    - { path: ^/, role: ROLE_PGM_USER }
    

    但这不是正确的位置,因为用户此时已经登录了。

    有没有办法将fr3d配置为也检查fos“enabled”字段,然后在不允许他们登录的情况下显示自定义消息?

    1 回复  |  直到 13 年前
        1
  •  1
  •   mogoman    13 年前

    找到了。

    使用此处的说明覆盖LdapManager( https://github.com/Maks3w/FR3DLdapBundle/blob/master/Resources/doc/cookbook/override_ldap-manager.md ).

    然后更改绑定函数,如下所示:

    /**
     * {@inheritDoc}
     */
    public function bind(LdapUserInterface $user, $password)
    {
        if (!$user->hasRole('ROLE_PGM_USER')) {
            return false;
        }
        return $this->connection->bind($user->getDn(), $password);
    }
    

    这样,没有“ROLE_PGM_USER”的用户就无法登录。

    推荐文章