路由的Symfony角色规则 - 拒绝访问

时间:2018-01-04 14:36:43

标签: symfony authentication roles

我遇到了确保路线问题的问题'仪表板'自定义用户角色。我正在使用FOSUserBundle,我知道由于应付用户默认情况下会给予ROLE_USER - 即使此角色确实出现在用户表中。

在用户登录时(通过Steam发生)我添加了一个新的自定义

public abstract class User implements Serializable { 
    protected String userName;
    protected String emailAddress;
    protected Date dob;
    protected Password password;

    // Initialisation Constructor
    public User(String userName, String emailAddress,
           int d, int m, int y,
           String cPW, String uEPW, int noTries){
      this.userName = username;
      this.emailAddress = emailAddress;
      this.dob = new Date(d, m, y);
    } 

    this.password = new Password(cPW, uEPW, noTries);
    // Assume that User also has ==>
    // 1. a toString() method,
    // 2. an equals() method, and
    // 3. appropriate set() and get() methods
}

我的问题如此流动 - 用户点击网站 - 用户登录 - 重定向到信息中心路线 - 拒绝访问错误。

我还禁用了安全行并转出了我可以从令牌用户对象中提取的ROLES以确认ROLE存在并匹配规则

这是我的安全ACL

$user->setRoles(['ROLE_LOGGED_STEAM_USER']);

最初,我不知道所有角色都必须以ROLE开头_ *

以下是附加角色here

的用户条目的屏幕截图

我希望它的简单性只是被忽略了所以任何帮助都会很棒!

感谢前进任何帮助/建议!

2 个答案:

答案 0 :(得分:0)

不确定,但我认为你有拼写错误,请尝试将角色转换为角色,并且" s"

 - { path: ^/dashboard, roles: ROLE_LOGGED_STEAM_USER }

答案 1 :(得分:0)

我认为您必须在" role_hierarchy "上注册您的自定义角色所以代码将是:

role_hierarchy:
    ROLE_ADMIN:       [ROLE_USER, ROLE_LOGGED_STEAM_USER]
    ROLE_SUPER_ADMIN: ROLE_ADMIN

希望有所帮助。