我试图在symfony3中的控制器中实现安全审核。要求与https://github.com/simplethings/EntityAudit
中的EntityAudit类似案例说明:/ {locale} / introduction.{_format}页面有访问权限需要将以下信息记录到数据库表中。 一个。使用的语言环境 湾请求的格式 C。是匿名请求或授权为 d。请求时间
同时,"计数器" table递增请求" hit counter"控制器。
什么是最佳做法,只需几行代码或参考文件即可。
答案 0 :(得分: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;
对于格式,GetResponseEvent的请求对象上有一个方法getRequestFormat()
。
RequestTime只是new \DateTime()
所以一切都会好的。