我有一个kernel.request
事件监听器服务,可以修改request
,但不会对form_login
处理的帖子请求执行。如何设法在SecurityBundle
之前拦截请求?
答案 0 :(得分:1)
虽然从未尝试过,但也许优先属性可以帮助
http://symfony.com/doc/current/cookbook/service_container/event_listener.html
还有一个额外的标记选项优先级是可选的,默认为0。 此值可以是-255到255,并且将按顺序执行侦听器 他们的优先级(从最高到最低)。当您需要保证时,这非常有用 一个监听器在另一个监听器之前执行。
Symfony \ Component \ Security \ Http \ Firewall似乎订阅了优先级为8的kernel.request,因此任何大于该值的内容都可以正常工作。
所以,试试这个
# config.yml
services:
kernel.listener.your_listener_name:
class: Acme\DemoBundle\EventListener\AcmeRequestListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 100 }