【问题标题】:FOS Rest Bundle AccessDeniedListener not called未调用 FOS Rest Bundle AccessDeniedListener
【发布时间】:2015-07-14 16:31:13
【问题描述】:

我一直在为这个问题摸不着头脑。我正在查看 Symfony 的异常处理并检查配置了哪些侦听器。我看到 FOS Rest Bundle 提供了一个 AccessDeniedListener,在他们的服务定义中定义为

    <service id="fos_rest.access_denied_listener" class="%fos_rest.access_denied_listener.class%">
        <tag name="kernel.event_subscriber" />
        <tag name="monolog.logger" channel="request" />
        <argument>%fos_rest.access_denied_listener.formats%</argument>
        <argument>%fos_rest.access_denied_listener.unauthorized_challenge%</argument>
        <argument>%twig.exception_listener.controller%</argument>
        <argument type="service" id="logger" on-invalid="null" />
    </service>

但是,即使在 getSubscribedEvents 中添加 die() 也没有任何效果,所以我猜测它由于某种原因被忽略了。我以为任何带有kernel.event_subscriber标签的类的getSubscribedEvents方法都会被调用,这是错的吗?

我也尝试将服务定义放入我自己的包中,但没有奏效。

只看 symfony Symfony\Component\HttpKernel\EventListener\ExceptionListener 我可以看到他们正在添加 kernel.event_subscriber 标签,这很有效,订阅者按预期调用。实际上,在 symfony EventDispatcher 中的 addSubscriber 方法上设置断点表明根本没有添加订阅者。我对这一切感到非常困惑,并且可能误解了订阅者/听众的工作方式。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    只是一个没有很好地阅读文档的情况,它没有被调用,因为它必须被启用

    config.yml

    unauthorized_challenge: "Basic realm=\"Restricted Area\""
    access_denied_listener:
        json: true
    

    【讨论】:

      猜你喜欢
      • 2019-03-04
      • 2015-12-09
      • 2017-08-28
      • 2022-10-13
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      相关资源
      最近更新 更多