我使用FrameworkExtraBundle
创建API。我已经实施了无状态的wsse身份验证(http://symfony.com/doc/current/security/custom_authentication_provider.html) - 这意味着Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener
会在每个客户端的请求上执行。
我发现Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener
在SecurityListener
之前执行并且对我来说看起来不对 - 如果客户端没有权限进行此调用,则无需将请求转换为参数+验证它
问题:是否有能力改变听众的顺序 - 先调用SecurityListener
,然后再调用ParamConverterListener
?
答案 0 :(得分:0)
您可以为听众播放可选属性priority
。
正如documentation所述:
“其他可选标记属性称为优先级,默认为0,它控制执行侦听器的顺序(优先级最高,执行侦听器的时间越早)。这在您需要时很有用保证一个监听器在另一个监听器之前执行。内部Symfony监听器的优先级通常在-255到255之间,但你自己的监听器可以使用任何正整数或负整数。“
您应该可以更改优先级。
我很快在vendor/sensio/framework-extra-bundle/Resources/config
检查了security.xml
和converters.xml
- 他们都没有定义'优先级' - 因此默认情况下它可能是'先来/先服务'订单。