У меня есть некоторые проблемы с SecurityServiceProvider Silex.Всегда переадресовываться в/login при использовании SecurityServiceProvider
В основном то, что я хочу следующую структуру:
/администратор/ -> Страница администрирования, ограничивается некоторыми пользователями (может иметь несколько suppages например/администратора/пользователей и/администратора/проекты)
/администратор/войти -> на странице, которую посетители могут использовать для входа на страницу администрирования
/администратор/выход из системы - гости> На странице видят, когда они вышли из системы со страницы администрирования
Для реализации этого я написал следующий код:
<?php
require_once __DIR__.'/../vendor/autoload.php';
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$app = new Silex\Application();
$app['debug'] = true;
$app->register(new Silex\Provider\SecurityServiceProvider());
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__.'/views',
));
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
$app->register(new Silex\Provider\SessionServiceProvider());
$app['security.firewalls'] = array(
'login' => array(
'pattern' => '^/admin/login$'
),
'logout' => array(
'pattern' => '^/admin/logout$'
),
'admin' => array(
'pattern' => '^/admin/',
'form' => array('login_path' => '/admin/login', 'check_path'
=> '/admin/login_check'),
'users' => array(
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC
+GsReLf569mSKDsfods6LYQ8t
+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='), // PW is foo
),
'logout' => array('logout_path' => '/admin/logout')
),
);
$app->get('/admin/login', function(Request $request) use ($app) {
return $app['twig']->render('login.html', array(
'error' => $app['security.last_error']($request),
'last_username' => $app['session']-
>get('_security.last_username'),
));
});
$app->get('/admin/logout', function(Request $request) use ($app) {
return $app['twig']->render('logout.html', array());
});
$app->get('/admin/', function() use ($app) {
return $app['twig']->render('admin.html', array());
});
$app->run();
?>
Теперь, что происходит, что, когда я захожу на страницу "/admin/«Я всегда получаю , перенаправленный на«/login », который хорош, так как я не аутентифицирован, но он должен быть«/admin »login», поскольку параметр «login_path» в моей конфигурации указывает ... что я делать неправильно или это может быть ошибка в SecurityServiceProvider?