防火墙重定向事件



当symfony2中的防火墙决定重定向到登录时,我会尝试拦截。

我的目标是跟踪应该调用的url,并将其保留(会话,甚至cookie),以备成功登录时使用(<em]因此,即使用户注册并遵循双选择加入>操作)。因此,我需要当前调用的url(而不仅仅是路径)和请求(。

我尝试浏览symfony2代码,但找不到任何内容。文件中也没有提到这一点。

有人有什么想法吗?

我找到了一个在kernel.exception上侦听的解决方案。当抛出异常时,我会检查它是否是AccessDeniedException的实例,并对其做出反应

这是我的服务定义:

whatever_bundle.event_listener.exception_listener:
    class: WhateverBundleEventListenerExceptionListener
    tags:
        - { name: kernel.event_listener, event: kernel.exception, priority: 1 }

这就是监听器类:

<?php
namespace WhateverBundleEventListener;
use SymfonyComponentHttpKernelEventGetResponseForExceptionEvent;
use SymfonyComponentSecurityCoreExceptionAccessDeniedException;
class ExceptionListener
{
    public function onKernelException(GetResponseForExceptionEvent $event)
    {
        if ($event->getException() instanceof AccessDeniedException) {
            doTheThingsYouWantToDoInThisCase();
        }
    }
}

最新更新