exceptions createnotfoundexception php symfony error-handling http-status-code-403

php - createnotfoundexception - ¿Cómo puedo lanzar una excepción 403 en Symfony2?



symfony createnotfoundexception (2)

Lanzar Symfony/Component/HttpKernel/Exception/AccessDeniedHttpException .

Eso omitirá el sistema de seguridad y le dará una respuesta 403 que a su vez será captada por el oyente de excepción ramita.

Estoy comprobando si hay un token específico en mi URI de solicitud y lanzo un Symfony/Component/Security/Core/Exception/AccessDeniedException si no hay ningún token o si el token es incorrecto.

if(!isset($token) && $token != ''whatever'') { throw new AccessDeniedException(''No token given or token is wrong.''); }

Pero cuando uso esta AccessDeniedException , Symfony2 simplemente redirige a la página de inicio de sesión. En cambio, me gustaría tener una página de error 403 dedicada (ya he creado el archivo de la app/Resources/TwigBundle/views/Exceptions/error403.html.twig ).

¿Qué tendría que cambiar para lograr esto? ¿Debo usar una Excepción nativa de PHP? Pero, ¿cómo puedo decir que pase un código de error 403?

¿Es posible que Symfony2 tenga una excepción 403 específica que no solo redirecciona al inicio de sesión?


A partir de Symfony 2.6, puede usar el siguiente atajo de controlador que activará la buena excepción para usted:

return $this->denyAccessUnlessGranted(''ROLE_EDIT'', $item, ''You cannot edit this item.'');