注销目标路径不会在 silex 防火墙中正确重定向
Logout target path do not redirect correctly in silex firewall
我有一个 silex 防火墙,有两个这样的安全区域
'clientes' => array(
'pattern' => '^/clients.*$',
'anonymous' => true,
'form' => array(
'login_path' => '/clients/login',
'check_path' => '/clients/login_check',
'default_target_path' => '/clients/admin',
'always_use_default_target_path' => true,
'username_parameter' => 'username',
'password_parameter' => 'password',
'csrf_parameter' => 'login_token',
'failure_path' => '/clients/login',
),
'logout' => array(
'logout_path' => '/clients/admin/logout',
'target' => '/clients/login'
),
'users' => $app->factory(function () use ($app) {
return new Lib\Provider\ClientProvider($app);
})
),
'sistema' => array(
'pattern' => '^/.*$',
'anonymous' => true,
'form' => array(
'login_path' => '/',
'check_path' => '/login_check',
'default_target_path' => '/dashboard',
'always_use_default_target_path' => true,
'username_parameter' => 'username',
'password_parameter' => 'password',
'csrf_parameter' => 'login_token',
'failure_path' => '/',
),
'logout' => array(
'logout_path' => '/logout',
'target' => '/'
),
'users' => $app->factory(function () use ($app) {
return new Lib\Provider\UserProvider($app);
})
)
),
'security.access_rules' => array(
array('^/select-locale.*$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array('^/recupera-password.*$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array('^/dashboard', array('ROLE_ADMIN','ROLE_SISTEMA')),
array('^/clients/login$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array('^/clients/admin', array('ROLE_CLIENTE'))
),
'security.role_hierarchy' => array(
'ROLE_ADMIN_SUPER' => array('ROLE_ADMIN','ROLE_SISTEMA','ROLE_CLIENTE'),
)
两个防火墙都工作正常,但是在注销部分的目标参数在任何一种情况下都不起作用,它总是重新寻址我的项目的根目录。
即使我使用任何 url 进行修改,目标参数始终会转到项目的根目录。
我读到应该修改注销处理程序,但我不清楚它是如何配置的以及应该在哪里完成
您能否提供一些建议来使 url 都得到更改并正常工作?
此致
参数名称不正确。尝试将其更改为 target_url
.
'logout' => array(
'logout_path' => '/clients/admin/logout',
'target_url' => '/clients/login'
),
我有一个 silex 防火墙,有两个这样的安全区域
'clientes' => array(
'pattern' => '^/clients.*$',
'anonymous' => true,
'form' => array(
'login_path' => '/clients/login',
'check_path' => '/clients/login_check',
'default_target_path' => '/clients/admin',
'always_use_default_target_path' => true,
'username_parameter' => 'username',
'password_parameter' => 'password',
'csrf_parameter' => 'login_token',
'failure_path' => '/clients/login',
),
'logout' => array(
'logout_path' => '/clients/admin/logout',
'target' => '/clients/login'
),
'users' => $app->factory(function () use ($app) {
return new Lib\Provider\ClientProvider($app);
})
),
'sistema' => array(
'pattern' => '^/.*$',
'anonymous' => true,
'form' => array(
'login_path' => '/',
'check_path' => '/login_check',
'default_target_path' => '/dashboard',
'always_use_default_target_path' => true,
'username_parameter' => 'username',
'password_parameter' => 'password',
'csrf_parameter' => 'login_token',
'failure_path' => '/',
),
'logout' => array(
'logout_path' => '/logout',
'target' => '/'
),
'users' => $app->factory(function () use ($app) {
return new Lib\Provider\UserProvider($app);
})
)
),
'security.access_rules' => array(
array('^/select-locale.*$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array('^/recupera-password.*$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array('^/dashboard', array('ROLE_ADMIN','ROLE_SISTEMA')),
array('^/clients/login$', 'IS_AUTHENTICATED_ANONYMOUSLY'),
array('^/clients/admin', array('ROLE_CLIENTE'))
),
'security.role_hierarchy' => array(
'ROLE_ADMIN_SUPER' => array('ROLE_ADMIN','ROLE_SISTEMA','ROLE_CLIENTE'),
)
两个防火墙都工作正常,但是在注销部分的目标参数在任何一种情况下都不起作用,它总是重新寻址我的项目的根目录。
即使我使用任何 url 进行修改,目标参数始终会转到项目的根目录。
我读到应该修改注销处理程序,但我不清楚它是如何配置的以及应该在哪里完成
您能否提供一些建议来使 url 都得到更改并正常工作?
此致
参数名称不正确。尝试将其更改为 target_url
.
'logout' => array(
'logout_path' => '/clients/admin/logout',
'target_url' => '/clients/login'
),