【问题标题】:Symfony2 - Access DeniedSymfony2 - 访问被拒绝
【发布时间】:2013-09-15 11:50:49
【问题描述】:

我在我的项目中使用 Symfony2,并创建了两个页面。一个登录页面和一个索引页面。我已成功登录管理员帐户(ROLE_ADMIN)。
但是我收到 403 Forbidden page 并出现以下错误:

错误 - 未捕获的 PHP 异常
Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException: "Access Denied" at .\vendor\symfony\symfony\src\Symfony\Component\Security\Http\Firewall\ExceptionListener.php line 100

这是我在security.yml 中的配置:

access_control: 
   - { path: ^/vs/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
   - { path: ^/vs/index, roles: ROLE_ADMIN }

当我 var_dump 用户时。我看到 roles 是空的:

private 'roles' => 
    object(Doctrine\ORM\PersistentCollection)[293]
      private 'snapshot' => 
        array (size=0)
          empty

这是我User.php的角色:

/**
 * @ORM\ManyToMany(targetEntity="Role", inversedBy="users")
 * @ORM\JoinTable(name="user_role",
 * joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 * inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
 * )
 */
private $roles;

这就是我使用$user->getRoles()时得到的:

array (size=1)
  0 => 
    object(...\Entity\Role)[397]
      private 'id' => int 1
      private 'name' => string 'admin' (length=5)
      private 'role' => string 'ROLE_ADMIN' (length=10)
      private 'users' => 
        object(Doctrine\ORM\PersistentCollection)[398]
          private 'snapshot' => 
            array (size=0)

我做错了什么?

【问题讨论】:

  • 是的,我按照本教程进行操作。
  • 登录后重定向使用哪个路由?是/vs/index 吗?顺便说一句,在处理 Doctrine 实体时,您应该使用 \Doctrine\Common\Util\Debug::dump($entity) 而不是 var_dump($entity)
  • 对我有用,刚刚尝试过。也许您可以发布整个用户和角色实体。也许这是一些愚蠢的东西,比如一个错字或什么的。并确保在数据库中为用户添加角色:)
  • 这里是我的注释: /** * @ORM\ManyToMany(targetEntity="Role", inversedBy="users") * / private $roles; /* * @ORM\ManyToMany(targetEntity="User", mappedBy="roles") */ private $users;首先尝试更改这些

标签: php symfony access-denied user-roles


【解决方案1】:

教义关系注释错误:

/** 
 * @ORM\ManyToMany(targetEntity="Role", inversedBy="users") 
 */ 
private $roles; 

/**
 * @ORM\ManyToMany(targetEntity="User", mappedBy="roles") 
 */ 
private $users; 

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2021-03-06
    • 2011-05-15
    • 2010-09-06
    相关资源
    最近更新 更多