如何创建一个自定义访问拒绝处理程序

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何创建一个自定义访问拒绝处理程序

当应用程序抛出AccessDeniedException,您可以使用服务处理此异常以返回自定义响应。

首先,创建实现的类AccessDeniedHandlerInterface.该接口定义了一个名为处理()当当前用户访问被拒绝时,你可以实现任何应该执行的逻辑(例如发送邮件,记录消息,或通常返回一个自定义响应):

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
名称空间AppBundle安全使用ob娱乐下载组件HttpFoundation请求使用ob娱乐下载组件HttpFoundation响应使用ob娱乐下载组件安全核心异常AccessDeniedException使用ob娱乐下载组件安全Http授权AccessDeniedHandlerInterfaceAccessDeniedHandler实现了AccessDeniedHandlerInterface公共函数处理(请求请求, AccessDeniedExceptionaccessDeniedException/ /……返回响应(内容403);}}

如果你在用默认的服务。yml配置,你完蛋了!ob娱乐下载Symfony将自动了解您的新服务。然后你可以在防火墙下配置它:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7
# app / config / security.yml防火墙:#……主要:#……access_denied_handler:AppBundle \安全\ AccessDeniedHandler

就是这样!任何AccessDeniedException下的代码抛出主要防火墙现在将由您的服务处理。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。