0

我需要在应用程序的任何部分访问当前登录的用户(如果有)。特殊路径,例如/admin需要特殊权限(角色)。

这是保护整个应用程序不允许匿名用户的防火墙配置(只有一个防火墙)(因为即使在主页中我也需要当前用户)。

我得到了一个重定向循环,甚至请求/. 有什么帮助吗?

'security.firewalls' => array(
    'secured' => array(
        'pattern' => '.*',
        'anonymous' => false,
        'form' => array(
            'login_path' => '/login',
            'check_path' => '/login_check',
            'username_parameter' => 'login[username]',
            'password_parameter' => 'login[password]',
        ),
        'logout' => array('logout_path' => '/logout')
    )
)

访问规则ROLE_ADMIN仅要求以 . 开头的路径/admin。其余的是匿名的:

'security.access_rules' => array(
    array('^/admin', 'ROLE_ADMIN'),
    array('^.*',     'IS_AUTHENTICATED_ANONYMOUSLY')
),
4

1 回答 1

2

要允许通过IS_AUTHENTICATED_ANONYMOUSLY必须允许匿名访问。

'security.firewalls' => array(
    'secured' => array(
        'pattern' => '/',
        'anonymous' => true,
        // other stuff
    )
)

'security.access_rules' => array(
    array('^/admin', 'ROLE_ADMIN'),
    array('^/',      'IS_AUTHENTICATED_ANONYMOUSLY')
),

如果用户已登录,您可以在每个页面中访问它们。IS_AUTHENTICATED_ANONYMOUSLY只是一个角色,它有未经身份验证的用户(匿名)。

于 2013-09-01T16:10:33.547 回答