@unity_ultra_hardcore

Как получить _security.default.target_path в контроллере?

Здравствуйте.
У меня на странице логина также имеются ссылки входа через соцсети, которым можно передать некий внутренний путь, чтобы после редиректа из соцсети пользователь вернулся на тот URI, с которого и попал на логин.
Внутри Symfony за это отвечает параметр _security.default.target_path в сессии. Реферер не подходит, так как содержит не всегда верные данные (например, я иду со публичной доступной страницы товара /good/{good_id} на страницу оплаты /good/{good_id}/buy, которая уже требует аутентификации, будучи незалогиненным, и получаю 302 редирект на /signin. В таком случае в реферере будет находиться /good/{good_id}, а не ожидаемый /good/{good_id}/buy).
При этом, в сессии находится верный параметр, который я и хотел бы достать.
Конечно, можно сделать что-то вроде
$target = $this->get('session')->get('_security.default.target_path', '/')
, но сами понимаете надежность и правильность этого решения.
Может быть, есть легальный способ обратиться к этому значению? Ну и хотелось бы избежать написание собственного AuthenticationListener, так как он будет просто дублировать функционал встроенного.
UPD: понял еще, что default в данном случае - это еще и имя текущего файрволла, то есть завязываться на название параметра в сессии еще более неправильно.
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы