我正在開發一個應用程序與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'),
);
以上都沒有工作。在管理控制器'$ this-> app ['security'] - > getToken() - > getUser()'輸出'anon.'的init動作中。 ROLE_USER和ROLE_ADMIN應該能夠訪問/ admin,但匿名用戶不能。 – qzminski 2014-10-21 16:34:33