Tôi gặp sự cố với thành phần tường lửa của Symfony2 về độ tuổi trên một số yêu cầu.Tường lửa Symfony2 mất độ tuổi
Tôi đã nhận thấy rằng điều này xảy ra chủ yếu trong các yêu cầu AJAX và những điều rất cụ thể - khi tôi tìm kiếm một thực thể sử dụng LIKE% ..% statements trong doctrine (không chắc chắn nó quan trọng, nhưng đó là những gì tôi nhận thấy;)) .
Gọi cùng một URL sau (1 hoặc 2 giây sau) sẽ dẫn đến thời gian xử lý tường lửa "bình thường".
Tôi không sử dụng bất kỳ nguồn dữ liệu bên ngoài nào để xác thực, mọi thứ được lưu trữ trong PostgreSQL.
Nhìn vào thời gian sau:
timeline http://f.cl.ly/items/1a2Y0T062E0H2Z3t0g27/Zrzut%20ekranu%202012-11-19%20o%2018.26.11.png
Có cách nào để gỡ lỗi các bức tường lửa trực tiếp?
cấu hình của tôi trông như thế này:
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
Tôi đang sử dụng Symfony\SecurityBundle
và JMSSecurityExtraBundle
.
Hãy thử sử dụng địa chỉ IP thực (thay vì tên máy chủ) cho máy chủ cơ sở dữ liệu của bạn. http://12wiki.blogspot.com.es/2012/11/why-does-symfony-2-firewall-take-so.html – Cerad
Có nhiều yêu cầu AJAX xử lý cùng lúc không ot đó là yêu cầu duy nhất? – AlterPHP
Vâng, đó là người duy nhất. Mặc dù ... Đó là một tìm kiếm trực tiếp, tức là. tìm kiếm dưới dạng loại người dùng (với độ trễ 100ms khi người dùng ngừng nhập) và mọi yêu cầu AJAX trước đó đều bị hủy. Nhưng nó thực sự có thể là các yêu cầu bị hủy bỏ nhưng chúng vẫn đang được xử lý bởi máy chủ. –