加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony2 – 访问被拒绝

发布时间:2020-12-13 22:50:00 所属栏目:PHP教程 来源:网络整理
导读:我正在为我的项目使用Symfony2,我创建了两个页面.一个登录页面和一个索引页面.我已成功登录管理员帐户(使用ROLE_ADMIN). 但是我收到了403 Forbidden页面,其中包含以下错误: ERROR – Uncaught PHP Exception SymfonyComponentHttpKernelExceptionAccess
我正在为我的项目使用Symfony2,我创建了两个页面.一个登录页面和一个索引页面.我已成功登录管理员帐户(使用ROLE_ADMIN).
但是我收到了403 Forbidden页面,其中包含以下错误:

ERROR – Uncaught PHP Exception
SymfonyComponentHttpKernelExceptionAccessDeniedHttpException: “Access Denied” at .vendorsymfonysymfonysrcSymfonyComponentSecurityHttpFirewallExceptionListener.php line 100

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

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

当我var_dump用户.我看到角色是空的:

private 'roles' => 
    object(DoctrineORMPersistentCollection)[293]
      private 'snapshot' => 
        array (size=0)
          empty

这是我的User.php的角色:

/**
 * @ORMManyToMany(targetEntity="Role",inversedBy="users")
 * @ORMJoinTable(name="user_role",* joinColumns={@ORMJoinColumn(name="user_id",referencedColumnName="id")},* inverseJoinColumns={@ORMJoinColumn(name="role_id",referencedColumnName="id")}
 * )
 */
private $roles;

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

array (size=1)
  0 => 
    object(...EntityRole)[397]
      private 'id' => int 1
      private 'name' => string 'admin' (length=5)
      private 'role' => string 'ROLE_ADMIN' (length=10)
      private 'users' => 
        object(DoctrineORMPersistentCollection)[398]
          private 'snapshot' => 
            array (size=0)

我做错了什么?

解决方法

学说关系注释是错误的:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读