如何更改默认的目标路径行为
编辑本页警告:您正在浏览的文档欧宝官网下载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作为BaseExceptionListener;类ExceptionListener扩展BaseExceptionListener{受保护的函数setTargetPath(请求$请求){//不保存XHR请求的目标路径//你可以在这里添加任何你想要的逻辑//注意,非get请求已经被忽略如果($请求->isXmlHttpRequest ()) {返回;}父::setTargetPath ($请求);}}
根据您的场景需要,在这里添加或多或少的逻辑!
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。