如何创建一个自定义访问拒绝处理程序
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何创建一个自定义访问拒绝处理程序
当应用程序抛出AccessDeniedException
,您可以使用服务处理此异常以返回自定义响应。
每个防火墙上下文都可以定义自己的自定义拒绝访问处理程序:
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / security.yml防火墙:foo:#……access_denied_handler:app.security.access_denied_handler
的处理程序必须实现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\授权\AccessDeniedHandlerInterface;类AccessDeniedHandler实现了AccessDeniedHandlerInterface{公共函数处理(请求$请求, AccessDeniedException$accessDeniedException){/ /……返回新响应($内容,403);}}
然后,为访问被拒绝的处理程序注册服务:
- YAML
- XML
- PHP
1 2 3 4
# app / config / services.yml服务:app.security.access_denied_handler:类:AppBundle \安全\ AccessDeniedHandler
就是这样!任何AccessDeniedException
由喷火
防火墙现在将由您的服务处理。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。