我对Symfony2防火墙组件在某些请求上花费时间有问题。我注意到它主要发生在AJAX请求期间,并且非常具体 - 当我在教义中使用LIKE%..%语句搜索一个实体时(不确定它是否重要,但这就是我注意到的));});}}}}}} 。Symfony2防火墙需要年龄
稍后调用相同的URL(1或2秒后)会导致“正常”的防火墙处理时间。
我没有使用任何外部数据源进行身份验证,所有内容都存储在PostgreSQL中。
请看下面的时间表:
timeline http://f.cl.ly/items/1a2Y0T062E0H2Z3t0g27/Zrzut%20ekranu%202012-11-19%20o%2018.26.11.png
有没有办法直接调试防火墙?
我的配置是这样的:
security:
firewalls:
admin_area:
provider: db_users
pattern: ^/admin
anonymous: ~
form_login:
login_path: /admin/login
check_path: /admin/login-check
logout:
path: /admin/logout
target: /admin
switch_user: { role: ROLE_SUPERADMIN, parameter: _become_user }
secured_area:
pattern: ~
anonymous: ~
http_basic:
realm: "Secured Demo Area"
access_control:
- { path: ^/admin/clip-manager/clip/encode/*, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
- { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/login-check, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: [ROLE_ADMIN_LOGIN, ADMIN_AREA] }
providers:
db_users:
entity: { class: Webility\Bundle\AppUserBundle\Entity\User, property: username }
encoders:
Webility\Bundle\AppUserBundle\Entity\User:
algorithm: sha256
iterations: 3
encode_as_base64: false
acl:
connection: default
我使用Symfony\SecurityBundle
和JMSSecurityExtraBundle
。
尝试使用数据库服务器的实际IP地址(而不是主机名)。 http://12wiki.blogspot.com.es/2012/11/why-does-symfony-2-firewall-take-so.html – Cerad
有没有很多AJAX请求在同一时间处理?它是唯一的吗? – AlterPHP
是的,这是唯一的一个。虽然...这是一个实时搜索,即。搜索用户类型(当用户停止输入时延迟100ms),并且任何以前的AJAX请求都会中止。但确实可能会中止请求,但仍然由服务器处理。 –