2014-10-13 17 views
14

Trên một ứng dụng web lớn, tôi muốn khách hàng của chúng tôi có thể bật/định cấu hình nhà cung cấp nhận dạng sigle đăng nhập riêng của họ (SAML). Mỗi khách hàng có tên miền phụ cụ thể của riêng nó cho phép ứng dụng của chúng tôi xác định tường lửa nào sẽ hoạt động. Tuy nhiên, tôi không muốn cấu hình thủ công từng tường lửa mới và xóa bộ nhớ cache trước khi các thay đổi được thực hiện. Bây giờ tôi đọc về tiêm phụ thuộc, mở rộng, trình biên dịch và tất cả những điều đó, nhưng tôi dường như không thể tìm cách tải các thiết lập tường lửa động từ cơ sở dữ liệu và áp dụng chúng. Bất kỳ ý tưởng làm thế nào tôi sẽ làm điều này?Tường lửa động Symfony

FYI, tôi đang sử dụng SamlSPBundle cho SSO.

Cảm ơn!

Trả lời

5

Tôi có thể đã tìm ra điều này chỉ trong vài phút sau khi thiết lập tiền thưởng! ;)

an ninh Symfony2 phép đặc điểm kỹ thuật của một request_matcher trên một cơ sở cho mỗi bức tường lửa:

http://php-and-symfony.matthiasnoback.nl/2012/07/symfony2-security-using-advanced-request-matchers-to-activate-firewalls/

Tuỳ chỉnh RequestMatchers phải thực hiện một phương pháp duy nhất mà trả về true hoặc false dựa trên đối tượng Request. Tôi nghĩ rằng điều này có thể được sử dụng để kích hoạt một bức tường lửa động. Miễn là bạn có một số lượng hữu hạn của tường lửa (tôi làm), thì một RequestMatcher tùy chỉnh có thể giải quyết vấn đề của bạn.

+0

Đây là cách tốt nhất mà tôi biết. –

+0

Tốt hơn sau đó không bao giờ tôi chấp nhận câu trả lời của bạn. Chúng tôi đã thực sự triển khai nó bằng cách sử dụng request_matcher, cảm ơn! – symfoon

Các vấn đề liên quan