如果客户的IP地址被禁止,我想禁止访问/login
和/register
。
禁止IP的(黑色)列表存储在数据库中。
我该如何解决这个问题?
答案 0 :(得分:5)
从symfony 2.4开始,您可以在配置文件中使用Expression Language Component。
现在实施简单的IP检查很简单:
access_manager
)创建服务(即getBannedIPs()
)# app/config/security.yml
security:
# ...
access_control:
- path: ^/(login|register)$
allow_if: "request.getClientIp() not in @=service('access_manager').getBannedIPs()"
答案 1 :(得分:2)
您可以在注册控制器上订阅活动。
如需注册,您可以订阅REGISTRATION_INITIALIZE
活动。
以下是controller events的文档。
第二个解决方案是override login and register controller methods,但您必须复制登录/注册操作的所有代码。