Ich habe ein Problem mit Symfony2 Firewall-Komponente dauert ewig bei einigen Anfragen.Symfony2 Firewall dauert Alter
Ich habe festgestellt, dass es hauptsächlich während AJAX-Anfragen passiert, und sehr spezifische - wenn ich nach einer Entität mit LIKE% ..% Aussagen in Lehre (nicht sicher, dass es darauf ankommt, aber das ist, was ich bemerkt habe;)) .
Der Aufruf der gleichen URL etwas später (1 oder 2s später) führt zu einer "normalen" Firewall-Verarbeitungszeit.
Ich verwende keine externen Datenquellen für die Authentifizierung, alles ist in PostgreSQL gespeichert.
Blick auf die folgenden Zeitplan:
timeline http://f.cl.ly/items/1a2Y0T062E0H2Z3t0g27/Zrzut%20ekranu%202012-11-19%20o%2018.26.11.png
Gibt es eine Möglichkeit direkt die Firewall zu debuggen?
Meine Config sieht wie folgt aus:
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
I Symfony\SecurityBundle
und JMSSecurityExtraBundle
verwende.
Versuchen Sie, eine tatsächliche IP-Adresse (anstelle von Hostname) für Ihren Datenbankserver zu verwenden. http://12wiki.blogspot.com.es/2012/11/why-does-symfony-2-firewall-take-so.html – Cerad
Gibt es viele AJAX-Anfragen zur gleichen Zeit oder es ist die einzige? – AlterPHP
Ja, es ist der einzige. Obwohl ... Es ist eine Live-Suche, dh. Suche als Benutzertypen (mit einer Verzögerung von 100 ms, wenn der Benutzer die Eingabe beendet hat) und alle vorherigen AJAX-Anforderungen werden abgebrochen. In der Tat ist es möglich, dass die Anfragen abgebrochen werden, aber vom Server noch verarbeitet werden. –