SecurityServiceProvider Silex / Symfony authtentication

时间:2014-04-26 18:47:48

标签: php symfony silex

我是Symfony和Silex的新手。我正在遵循Silex文档并尝试为我的应用程序实现登录访问,但是我在尝试使用SecurityServiceProvider时遇到了困难,即使我在这里尝试了很多解决方案,但似乎没有一个对我有用。我使用的代码如下。

$app->register(new Silex\Provider\SecurityServiceProvider(), array(
    'security.firewalls' => array(
        'annon' => array('pattern' => '^/'),
        'admin' => array(
            'pattern' => '^.*$',
           //'anonymous' => true,
            'form' => array('login_path' => '/', 
                            'check_path' => 'admin/login_check',
                            'default_target_path' => 'admin/orders',
                            'always_use_default_target_path' => true),
            'logout' => array(  'logout_path' => 'admin/logout',
                                'target'  => '/',
                                'invalidate_session' => true),
            'users' => array(
                'admin@hotmail.com' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='),
            ),
        ),
    ),
    'security.access_rules' => array(
        array('^/.+$', 'ROLE_USER'),
        array('^/.+$', 'ROLE_ADMIN'),
        array('^/.+$', 'ROLE_LABOR'),
        array('^/annon$', ''), // This url is available as anonymous user
    )
));

所以登录后的用户应该能够在admin /之后访问所有内容。 PS:我是否必须实施check_path路由?

1 个答案:

答案 0 :(得分:0)

你应该看看this

可以删除防火墙定义annon

IS_AUTHENTICATED_ANONYMOUSLY中应该有一个角色security.access_rules