如何更改默认的目标路径行为

编辑本页

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

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

如何更改默认的目标路径行为

默认情况下,Security组件将最后一个请求URI的信息保留在一个名为_security.main.target_path(与主要中定义的防火墙名称security.yml).在成功登录后,用户将被重定向到此路径,以帮助他们从他们访问的最后一个已知页面继续。

在某些情况下,这并不理想。例如,当最后一个请求URI是返回非HTML或部分HTML响应的XMLHttpRequest时,用户将被重定向到浏览器无法呈现的页面。

要避免这种行为,只需扩展ExceptionListener类并重写默认方法setTargetPath ()

首先,重写security.exception_listener.class参数。这可以从您的主配置文件(在应用程序/配置)或者从一个从bundle导入的配置文件:

  • YAML
  • XML
  • PHP
1 2 3 4
# app / config / services.yml参数:#……security.exception_listener.class:AppBundle \安全\ \ ExceptionListener防火墙

接下来,创建你自己的ExceptionListener

12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
/ / src / AppBundle /安全/防火墙/ ExceptionListener.php名称空间AppBundle安全防火墙使用ob娱乐下载组件HttpFoundation请求使用ob娱乐下载组件安全Http防火墙ExceptionListener作为BaseExceptionListenerExceptionListener扩展BaseExceptionListener受保护的函数setTargetPath(请求请求//不保存XHR请求的目标路径//你可以在这里添加任何你想要的逻辑//注意,非get请求已经被忽略如果请求->isXmlHttpRequest ()) {返回;}::setTargetPath (请求);}}

根据您的场景需要,在这里添加或多或少的逻辑!

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