2016-02-16 51 views
0

我試圖在symfony3中的控制器中實施安全審計。要求類似於EntityAudit https://github.com/simplethings/EntityAuditSymfony3審計控制器

案例說明:/{_locale}/introduction.{_format}頁面有權訪問需要將以下信息記錄到數據庫表中。 a。使用的語言環境 b。請求格式 c。是匿名請求或授權爲 d。請求時間

同時,「計數器」表增加控制器的請求「計數器」。

什麼是最佳實踐,只需要幾行代碼或參考文檔就足夠了。

回答

0

我寧願使用EventListener它的佔地面積較小。

使用EventListener是以下情況的最佳實踐。發送電子郵件到審計,跟蹤信息,日誌記錄,異常,API訂閱等。

所以你可以添加一個監聽器到你的services.yml如下。

acme.demo.listener.your_listener: 
    class: Acme\DemoBundle\EventListener\YourListener 
    tags: 
     - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest } 

請看更詳細的信息。 http://symfony.com/doc/current/cookbook/event_dispatcher/event_listener.html

使用下面是用戶匿名或經過身份驗證的用戶:

Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;

Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; 

你可以從事件請求

Symfony\Component\HttpKernel\Event\GetResponseEvent; 

區域設置格式有一個方法getRequestFormat()上GetResponseEvent的請求對象。 RequestTime只是new \DateTime()

所以一切都會好的。