我正在尝试设置 FOSRestBundle 以捕获身份验证异常。我的配置:
fos_rest:
param_fetcher_listener: true
body_listener: true
format_listener: true
view:
default_engine: php
format_listener:
default_priorities: ['json']
fallback_format: json
prefer_extension: false
access_denied_listener:
json: true
exception:
codes:
Symfony\Component\Security\Core\Exception\AccessDeniedException: 403
twig:
exception_controller: FOS\RestBundle\Controller\ExceptionController::showAction
此配置将在控制器中抛出异常时捕获异常,但不会在从安全组件中抛出异常时(即,如果用户身份验证失败)。我的配置有问题,还是 FOSRestBundle 根本没有设计为拦截堆栈中该点的异常?
值得一提的是,我在这里使用了基于 WSSE 教程的自定义身份验证提供程序:
http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html