Несколько брандмауэров по одному на тип аутентификации - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь реализовать аутентификацию токена (в дополнение к форме входа в систему), выполнив следующие статьи:

https://symfony.com/doc/current/security/api_key_authentication.html https://symfony.com/doc/current/security/multiple_user_providers.html

Вот мой security.yaml:

main:
    anonymous: true
    pattern: ^/
    provider: db_provider

    form_login:
        login_path: auth_login
        check_path: auth_login

#secured_area:
    logout:
        path:   /auth/logout
        target: /         

token:
    anonymous: true
    pattern: ^/token

    stateless: false
    simple_preauth:
        authenticator: App\Security\TokenAuthenticator
    provider: token_user_provider        

Это не работает - аутентификаторы токенов никогда не будут вызваны, если я не закомментирую "главный" брандмауэр.

Я думаю, что смогу выполнить свое требование, следуя этой статье и используя только «основной» брандмауэр:

https://symfony.com/doc/current/security/multiple_user_providers.html

Однако я бы предпочел подход, который я пробую сейчас, потому что я не хочу, чтобы аутентификатор токена срабатывал при каждом отдельном запросе, я хочу, чтобы он ограничивался только путями /token, и я бы предпочел избегать проверки путей внутри TokenAuthenticator::createToken(...) как указано в документации:

https://symfony.com/doc/current/security/api_key_authentication.html#only-authenticating-for-certain-urls

Есть идеи, предложения?

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