【发布时间】:2021-06-11 22:17:07
【问题描述】:
我已经实现了全新的 Symfony 身份验证系统:https://symfony.com/doc/current/security/experimental_authenticators.html
我添加了新的登录限制:https://symfony.com/blog/new-in-symfony-5-2-login-throttling
一切都已正确配置。
我还安装了 RateLimiter 组件,它创建了一个环境变量:
LOCK_DSN=semaphore
但是我有一个问题。首先,登录限制似乎被忽略了一半。超出限制后,我没有错误消息。另一方面,如果我尝试使用良好的凭据进行连接,则会出现以下错误:
需要信号量扩展 (sysvsem)。
我尝试安装信号量组件(https://symfony.com/doc/current/components/semaphore.html)
但同样的问题。
这是我的 security.yaml
security:
enable_authenticator_manager: true
encoders:
App\Application\Entity\User:
algorithm: auto
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
in_memory: { memory: ~ }
# used to reload user from session & other features (e.g. switch_user)
in_database:
entity:
class: App\Application\Entity\User
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
user_checker: App\Application\Security\UserChecker
provider: in_database
lazy: true
remember_me:
secret: '%kernel.secret%'
form_login:
login_path: app_login
check_path: app_login
default_target_path: home
logout:
path: app_logout
target: app_login
custom_authenticators:
- App\Application\Security\AppCustomAuthenticator
entry_point: App\Application\Security\AppCustomAuthenticator
# configuring the maximum login attempts (per minute)
login_throttling:
max_attempts: 2
我搜索了是否有要添加到 PHP 的扩展,但找不到任何东西。所以我不知道该怎么办。 我在 Windows 10 上
【问题讨论】:
-
Linux 上存在该名称的扩展名:pkgs.org/download/php-sysvsem 但是,Windows 上不存在(来源:wiki.php.net/internals/windows/libs - 搜索 sysvsem)
-
我才意识到,确实,这很成问题......谢谢你的信息
-
离题但在同一个防火墙中同时拥有 form_login 和自定义身份验证器似乎有点不寻常。我想它有效。
-
啊,是的,当我配置新的身份验证系统时,我的疏忽不大!所以我应该删除form_login?是的,它有效
-
是的,我建议删除 form_login 以防止下游混淆。认证系统已经够混乱了。我自己从未尝试过登录限制功能,所以无法提供帮助。
标签: php symfony components symfony-ratelimiter