Есть ли способ запретить брандмауэр к определенному домену в symfony

#symfony #security #firewall

#symfony #Безопасность #брандмауэр

Вопрос:

Я устанавливаю безопасность для своего api. Мне нужно защитить URL api. Итак, запросите аутентификацию для URL mydomain.com/api /. НО если запрос поступает из того же домена (mydomain.com ) Я хочу отключить аутентификацию.

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

 firewalls:
        api:
            pattern:   ^/api
            host: ^((?!mydomain).)*$
            stateless: true
            anonymous: true
            lexik_jwt:
                authorization_header:
                    enabled: true
                    prefix:  Bearer
  
 firewalls:
        api:
            pattern:   ^/api
            host: #???????
            stateless: true
            anonymous: true
            lexik_jwt:
                authorization_header:
                    enabled: true
                    prefix:  Bearer
  

Я ожидал, что брандмауэр api сработает, когда запрос выйдет за пределы mydomain. И не работает, когда запрос поступает из mydomain.

Ответ №1:

Вы можете попробовать изменить свою логику.

Создайте два брандмауэра :

  • Первый перехватывает запросы, поступающие из вашего домена, и отключает аутентификацию для них.
  • Второй перехватывает все оставшиеся запросы и запрашивает аутентификацию.