Новая система аутентификации теперь не делает редирект?

Перевожу проект на последнюю версию, прочитал, что теперь новая система аутентификации. Имею такую конфигурацию:

<?php

use App\Entity\User;
use App\Security\LoginAuthenticator;
use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
use Symfony\Config\SecurityConfig;

return static function (SecurityConfig $security) {
    $security->enableAuthenticatorManager(true);

    $security->provider('app_user_provider')
        ->entity()
            ->class(User::class)
            ->property('login');

    $security->passwordHasher(User::class)
        ->algorithm('bcrypt')
        ->cost(12);

    $security->firewall('dev')
        ->pattern('^/(_(profiler|wdt)|css|images|js)/')
        ->security(false);

    $security->firewall('main')
        ->lazy(true)
        ->customAuthenticators([LoginAuthenticator::class])
        ->logout()
            ->path('logout')
            ->target('login');

    $security->accessControl()->path('^/login')->roles([AuthenticatedVoter::PUBLIC_ACCESS]);
    $security->accessControl()->path('^/')->roles(['ROLE_USER']);
};


Предполагается, что весь сайт закрыть неавторизованным пользователям. Но пропал редирект.

То есть ранее, если пользователь не авторизован, то был редирект на форму входа, сейчас же ошибка:

Full authentication is required to access this resource.


Вопрос: может быть это как-то решается через настройки или нужно через ивенты проверять и редиректить самому?
  • Вопрос задан
  • 366 просмотров
Решения вопроса 1
@alexrakirov Автор вопроса
В общем читаю книгу вижу фигу, плохо посмотрел что там в FirewallConfig

В firewall добавляем entryPointкласс от AuthenticationEntryPointInterface

$security->firewall('main')
        ->lazy(true)
        ->customAuthenticators([LoginAuthenticator::class])
        ->entryPoint(AuthenticationEntryPoint::class)
        ->logout()
            ->path('logout')
            ->target('login');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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