2016-11-16 90 views
0

/管理路徑我有Silex的安裝與此SecurityServiceProvider設置:有登錄路由下的Silex

$this->app->register(new SecurityServiceProvider(), array(
      'security.firewalls' => array(
       'login' => array(
        'pattern' => '^/login$', 
       ), 
       'secured' => [ 
        'pattern' => '^/admin.*$', 
        'anonymous' => true, 
        'form' => array(
         'login_path' => '/login', 
         'check_path' => '/admin/auth' 
        ), 
        'logout' => array(
         'logout_path' => '/admin/logout' 
        ), 
        'users' => $this->app->share(function() use ($self) { 
         return new AuthenticationSuccessHandler($self->app['db']); 
        }), 
       ] 
      ), 
      'security.role_hierarchy' => [ 
       'ROLE_USER' => [], 
       'ROLE_BACKEND_USER' => ['ROLE_USER'], 
       'ROLE_SUPERADMIN' => $this->getAllBasicRoleName() 

      ], 
      'security.access_rules' => array(
       ['^/.*$', 'ROLE_USER'], 
       ['^/admin.*$', 'ROLE_SUPERADMIN'], 
       ['^/admin.*$', 'ROLE_BACKEND_USER'] 
      ) 
     )); 

此設置決心:

/login -> login form 
/admin -> secure area 
/admin/logout -> logout form 

但我需要登錄表單是根據管理路徑可達像這樣:

/admin/login -> login form UNDER ADMIN PATH! 
/admin -> secure area 
/admin/logout -> logout form 

有一種方法可以做到這一點嗎?

謝謝。 S.

回答

0

您是否嘗試過更改: 'login_path' => '/login','login_path' => '/admin/login',

我想你也想改變'pattern'=> '^/login$','pattern'=> /admin(.*)