Как получить имя брандмауэра из запроса в Symfony 5?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как получить имя брандмауэра из запроса в Symfony 5?

Сообщение Anonymous »

Вопрос прост. Я имплектирую AccessDiedListener , и я получаю объект ExceptionEvent . Из этого я могу получить запрос. Я хочу применить определенную логику только в том случае, если я нахожусь в одном из моих брандмауэров, определенных в Security.yaml.
Как я могу получить имя брандмауэра из ExceptionEvent или запрос экземпляры?$firewall_context_name = $event->getRequest()->attributes->get('_firewall_context');
< /code>
Однако я не очень доволен этим. Должен быть Firewallcontext или Firewallconfig объекты, которые каким-то образом можно найти, нет?class AccessDeniedListener implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
// the priority must be greater than the Security HTTP
// ExceptionListener, to make sure it's called before
// the default exception listener
KernelEvents::EXCEPTION => ['onKernelException', 2],
];
}

public function onKernelException(ExceptionEvent $event): void
{
$exception = $event->getThrowable();
if (!$exception instanceof AccessDeniedException) {
return;
}

$request = $event->getRequest();

// HOW TO GET FIREWALL NAME HERE???

< /code>
security.yaml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false

api:
pattern: ^/api/
security: false
main:
custom_authenticators:
- App\Security\LoginFormAuthenticator
logout:
path: app_logout
lazy: true
provider: app_user_provider


Подробнее здесь: https://stackoverflow.com/questions/677 ... -symfony-5
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»