Symfony 匿名者可以看到保护区

Symfony 匿名者可以看到保护区,symfony,silex,Symfony,Silex,我正在Silex中开发一个带有Symfony安全组件的应用程序。匿名用户应该能够访问应用程序的每个点,除了管理部分(^/admin) 我做错了什么?匿名用户仍然可以访问管理部分。为了达到这一点,我遵循了其他一些答案,但现在我被卡住了 $app['security.firewalls'] = array ( 'general' => array ( 'pattern' => '^/', 'anonymous' => true,

我正在Silex中开发一个带有Symfony安全组件的应用程序。匿名用户应该能够访问应用程序的每个点,除了管理部分(^/admin)

我做错了什么?匿名用户仍然可以访问管理部分。为了达到这一点,我遵循了其他一些答案,但现在我被卡住了

$app['security.firewalls'] = array
(
    'general' => array
    (
        'pattern' => '^/',
        'anonymous' => true,
        'form' => array
        (
            'login_path' => '/login',
            'check_path' => '/admin/login_check',
            'default_target_path' => '/admin',
            'always_use_default_target_path' => true,
        ),
        'logout' => array
        (
            'logout_path' => '/admin/logout',
            'target_url' => '/'
        ),
        'users' => $app->share(function() use ($app) {
            return new UserProvider($app['db']);
        })
    )
);

// @todo - find out why anonymous can see admin panel
$app['security.access_control'] = array
(
    array('path' => '^/login', 'role' => 'IS_AUTHENTICATED_ANONYMOUSLY'),
    array('path' => '^/admin', 'role' => 'ROLE_USER'),
);

$app['security.role_hierarchy'] = array
(
    'ROLE_ADMIN' => array('ROLE_USER'),
);
看看这些文件


它的^/admin/或^/admin$not ^/admin

我已将
安全性。访问控制
(现在似乎被忽略)更改为
安全性。访问规则
(以前抛出了“访问规则”为未知属性的错误),现在它似乎工作了:

$app['security.access_rules']=array
(
数组(“^/admin”、“角色\用户”),

);

以上两项都不适用。在管理员控制器的初始化操作中,
$this->app['security']->getToken()->getUser()
输出
anon.
。角色用户和角色管理员应该能够访问/ADMIN,但匿名用户不能。
'access_control' => array(
    array('path' => '^/admin/', 'role' => 'ROLE_ADMIN'),
    // Include the following line to also secure the /admin path itself
    // array('path' => '^/admin$', 'role' => 'ROLE_ADMIN'),
),