Ich habe ein Formular mit einem iframe als target. Die Url die dort aufgerufen wird ist die login_check von Symfony, der ich _username und _password schicke, in der Hoffnung, sofort eingeloggt zu werden. Problem: der Internet Explorer verliert die cookies im iframe. Also muss ich den entsprechenden Header setzen, und um das zu vereinfachen setze ich ihn einfach überall indem ich einen Listener einbaue:
namespace Package\SomeBundle\EventListener;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
class ResponseListener{
public function onKernelResponse(FilterResponseEvent $event){
$event->getResponse()->headers->set('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
}
}
Und registriert wird das ganze in der services.yml:
user.filter_response_listener
class: Package\SomeBundle\EventListener\ResponseListener
tags:
- {name: kernel.event_listener, event: kernel.response, method: onKernelResponse}