Regras simples de firewall silex explicadas

É irritante tentar configurar seu primeiro aplicativo Silex com um conjunto funcional de regras de firewall . Aqui está um conjunto que testei e funciona perfeitamente. Essas regras de firewall fazem o seguinte:

  • Permite acesso anônimo à página inicial (/)
  • Permite acesso anônimo à página de login (/ login)
  • Requer acesso ROLE_USER para qualquer outra página que você criar (/ dashboard, / somethingelse etc)

Sinta-se à vontade para usar isso como base para seus próprios projetos Silex. Em breve estarei colocando um Silex funcional com aplicativo de autenticação no meu Github.

$app->register(new SilexProviderSecurityServiceProvider(), array(
'security.firewalls' => array(
'login_path' => array(
'pattern' => '^/login$',
'anonymous' => true
),
'default' => array(
'pattern' => '^/.*$',
'anonymous' => true,
'form' => array(
'login_path' => '/login',
'check_path' => '/login_check',
),
'logout' => array(
'logout_path' => '/logout',
'invalidate_session' => false
),
'users' => $app->share(function($app) {
return new AppUserUserProvider($app['db']);
}),
)
),
'security.access_rules' => array(
array
('^/login$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array
('^/.+$', 'ROLE_USER')
)
));