Анонимные и аутентифицированные пользователи для того же брандмауэра в Symfony - PullRequest
0 голосов
/ 23 мая 2018

У меня есть два брандмауэра для аутентификации и API.Но я хочу объединить их и быть в состоянии проверить, есть ли какой-либо пользователь в контроллере.

firewalls:
    user:
        pattern:  ^/api/auth
        stateless: true
        anonymous: true
        json_login:
            check_path:               /api/auth/login_check
            success_handler:          lexik_jwt_authentication.handler.authentication_success
            failure_handler:          lexik_jwt_authentication.handler.authentication_failure
            require_previous_session: false

    api:
        pattern:   ^/api
        stateless: true
        guard:
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator

access_control:
    - { path: ^/api/auth,     roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api,          roles: IS_AUTHENTICATED_FULLY }

Что я хочу сделать, это объединить брандмауэры в один и разрешить любому пользователю все, но все же быть доступным дляидентифицировать пользователя, если JWT пароль.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Я думаю, что лучше использовать отдельные межсетевые экраны, как уже упоминалось, но в случае, если вам абсолютно необходимо, чтобы ваше приложение было открыто для всех и проверялось ли аутентификация пользователя на вашем контроллере, вы можете обратиться к документации symfony. и используйте что-то вроде:

$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
0 голосов
/ 23 мая 2018

По моему мнению, для достижения этого вам потребуется только межсетевой экран, соответствующий шаблону ^ / api , и продолжайте использовать сторожевой аутентификатор.Затем, внутри вашего аутентификатора, проверьте точный запрошенный маршрут и выберите, продолжать ли обычный поток аутентификатора защиты или использовать собственную логику для реализации входа в систему через json.Но это немного грязно, даже если охрана позволяет вам реализовать свою собственную логику.Сохранение разделенных межсетевых экранов звучит лучше.

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