1
我試圖創建過濾器之前的symfony:到目前爲止,我用這個指南
(http://symfony.com/doc/current/event_dispatcher/before_after_filters.html)Symfony的過濾器之前沒有報告的認證令牌
下面的代碼
// src/AppBundle/EventListener/LoginListener.php
class LoginListener {
private $tokens_storage;
public function __construct($tokens_storage) {
$this->tokens_storage = $tokens_storage;
}
public function onKernelController(FilterControllerEvent $event) {
$controller = $event->getController();
dump($this->tokens_storage->getToken());
/*
...
*/
return;
}
// app/config/services.yml
app.tokens.LoginListener:
class: AppBundle\EventListener\LoginListener
arguments: ["@security.token_storage"]
tags:
- { name: kernel.event_listener, event: kernel.controller, method: onKernelController }
的重要組成部分
現在,根據轉儲,$ this-> tokens_storage-> getToken()返回null,但根據屏幕底部的分析器欄,我通過UsernamePasswordToken進行身份驗證。
如何檢索該令牌?
編輯:如果我從控制器訪問令牌存儲,所述TokenStorage的內部令牌被正確填充
我猜它必須處理優先級,確保你的監聽器在安全服務之後運行完成填充令牌。 – Maerlyn
@Maerlyn根據這個(http://stackoverflow.com/a/11281765/6686006)回答,我無法設置這種監聽器的優先級。 – Vkfan