Symfony:捆绑中的侦听器优先级

时间:2019-03-11 07:40:07

标签: symfony listener

我有一个使用Symfony 3.4(和FOS Rest Bundle)框架构建的REST API。我使用带有API密钥的身份验证来对用户(https://symfony.com/doc/3.3/security/api_key_authentication.html)进行身份验证。 我安装了LexikMaintenanceBundle(https://github.com/lexik/LexikMaintenanceBundle)以便向API添加维护模式。

问题在于,始终总是首先进行身份验证,而不是首先检查是否启用了维护模式。通常,维护模式的检查应在身份验证之前首先进行。

如何更改在捆绑软件中创建的侦听器的优先级?也许还有另一种解决方案可以更改它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用附加标签属性priority控制执行侦听器的顺序。请参见documentation。数值越大,侦听器执行得越早,默认值为0。

通过在MaintenanceListener中添加priority属性,可以赋予LexikMaintenanceBundle/Resources/config/services.xml更高的优先级(任何正值,例如10):

<tag name="kernel.event_listener" event="kernel.request" method="onKernelRequest" priority="10" />