Symfony2身份验证侦听器403禁止响应

时间:2013-08-19 09:27:32

标签: php authentication symfony

我在身份验证侦听器中返回一个带有403状态代码的Response对象。

我所遵循的例子来自the cookbook

$response = new Response();
$response->setStatusCode(403);
$event->setResponse($response);

创建此响应后,浏览器(Chrome)会显示网络浏览器错误页面:

Access to the web page was denied

You are not authorised to access the web page at http://project/access-denied. You may need to sign in.

我希望它能从app/Resources/TwigBundle/views/Exception/error403.html.twig显示我自己的错误树枝错误页面(如this cookbook entry中所述)。但是由于已经发送了403响应,所以它没有那么远。

我无法抛出AccessDeniedException,因为这是一个身份验证失败,这意味着不存在导致致命错误的安全令牌。

我可以抛出AuthenticationException,但这只会导致500错误,显示标准的500错误页面。

我能看到这样做的唯一方法是将twig服务传递给侦听器并将其添加到响应中,例如:$response->setContent($twigRenderedError);但这似乎是一个丑陋的解决方案 - 可能是身份验证中的一个缺陷Symfony2层?

0 个答案:

没有答案