Сейчас я разрабатываю простой API для сервера непрерывной интеграции с Silex. Теперь api должен быть доступен для всех с секретным ключом, но для зарегистрированных пользователей я хочу, чтобы api был доступен без ключа.Silex SecurityServiceProvider, анонимная настройка не работает
Теперь конфигурация SecurityServiceProvider выглядит следующим образом:
'security.firewalls' => array(
'login' => array(
'pattern' => '^/auth/login'
),
'secured' => array(
'pattern' => '^/',
'form' => array(
'login_path' => "/auth/login",
'check_path' => "/auth/dologin",
'username_parameter' => 'login[username]',
'password_parameter' => 'login[password]',
"csrf_parameter" => "login[_token]",
"failure_path" => "/auth/login",
),
'logout' => array(
'logout_path' => "/auth/logout",
"target" => '/',
"invalidate_session" => false
),
'users' => array(
// admin:foo
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg==')
)
),'api' => array(
'pattern' => '^/api',
'anonymous' => true
),
)
Печально то, что, когда я на/API/страниц он по-прежнему перенаправляет меня на страницу входа в систему, хотя, как вы можете видеть анонимным => правда.
Я могу переместить брандмауэр для/api вверху и удалить анонимную строку, но тогда у меня нет доступа к объекту SecurityContext, чтобы проверить, не аутентифицирован ли пользователь.
Я хочу защитить все, кроме/API /. – nvartolomei
В этом случае определите два брандмауэра (см. Пример выше). –
Он по-прежнему перенаправляется на страницу входа. Я сказал это в первоначальном вопросе. Я могу получить доступ/api без входа в систему без этой строки «anonymous» => true », но после добавления Silex перенаправляет/login. – nvartolomei