Настройка брандмауэра для API - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь разработать API с системой аутентификации. Но в ответе на мой маршрут по умолчанию / всегда отображается исходный код начальной страницы Symfony по умолчанию, а не маршрут и не требуется аутентификация. Что не так с моей конфигурацией.

мой файл security.yaml :

security:
    encoders:
        App\Entity\User:
            algorithm: auto

    providers:
        app_user_provider:
            entity:
                class: App\Entity\User
                property: email

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            anonymous: true
            json_login:
                check_path: /api/login
            logout:
                path: /api/logout
                success_handler: api.logout.success.listener

    access_control:
        - { path: ^/, roles: IS_AUTHENTICATED_FULLY }

Мой SecurityController :

/**
 * @Route("/api")
 */
class SecurityController extends AbstractController
{
    /**
     * @Route("/", name="api", methods={"GET"})
     * @param Request $request
     * @return JsonResponse
     */
    public function test(Request $request)
    {
        return $this->json([
            'message' => 'test'
        ]);
    }

    /**
     * @Route("/login", name="login", methods={"POST"})
     * @param Request $request
     * @return JsonResponse
     */
    public function login(Request $request)
    {
        $user = $this->getUser();

        return $this->json([
            'username' => $user->getUsername(),
            'roles' => $user->getRoles(),
        ]);
    }

    /**
     * @Route("/logout", name="logout", methods={"GET"})
     * @throws Exception
     */
    public function logout()
    {
        // controller can be blank: it will never be executed!
        throw new Exception('Don\'t forget to activate logout in security.yaml');
    }
}

1 Ответ

0 голосов
/ 04 ноября 2019

Проблема решена, я наконец добавил DefaultController с маршрутом по умолчанию "/", который генерирует исключение NotFoundException.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...