2014-10-13 15 views
14

Chcę, aby nasi klienci mieli możliwość włączenia/skonfigurowania własnego dostawcy tożsamości Sigle Sign-On (SAML). Każdy klient ma swoją własną poddomenę, dzięki czemu nasza aplikacja może określić, która zapora powinna być aktywna. Nie chcę jednak ręcznie konfigurować każdej nowej zapory i wyczyścić pamięć podręczną przed wprowadzeniem zmian. Teraz czytam o wtrysku zależnym, rozszerzeniach, kompilatorach i tak dalej, ale po prostu nie mogę znaleźć sposobu na załadowanie dynamicznych ustawień zapory z bazy danych i zastosowanie ich. Masz pomysł, jak to zrobić?Zapora dynamiczna Symfony

FYI, używam SamlSPBundle dla SSO.

Dzięki!

Odpowiedz

5

Mogłem to rozgryźć chwilę po ustawieniu nagrody! ;)

bezpieczeństwo Symfony2 pozwala specyfikację request_matcher na zasadzie per-firewall:

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

niestandardowe RequestMatchers musi wdrożyć jedną metodę, która zwraca true lub false w zależności od obiektu Request. Myślę, że można to wykorzystać do dynamicznego aktywowania firewalla. Tak długo, jak masz skończoną liczbę zapór ogniowych (ja), to niestandardowy RequestMatcher może rozwiązać twój problem.

+0

To najlepszy sposób, jaki znam. –

+0

Lepiej późno niż ja nigdy nie przyjąłem twojej odpowiedzi. Zrobiliśmy to za pomocą request_matchera, dzięki! – symfoon