Symfony动态防火墙

时间:2014-10-13 17:53:58

标签: symfony firewall saml

在大型Web应用程序中,我希望我们的客户能够启用/配置他们自己的sigle登录(SAML)身份提供程序。每个客户都有自己的特定子域,允许我们的应用程序确定哪个防火墙应该是活动的。 但是,在更改生效之前,我不想手动配置每个新防火墙并清除缓存。现在我读到依赖注入,扩展,编译器等等,但我似乎无法找到从数据库加载动态防火墙设置并应用它们的方法。知道怎么做吗?

仅供参考,我使用SamlSPBundle进行SSO。

谢谢!

1 个答案:

答案 0 :(得分:5)

我可能在设定赏金后不久就想到了这一点! ;)

Symfony2安全性允许基于每个防火墙指定request_matcher:

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

自定义RequestMatchers必须实现一个基于Request对象返回true或false的方法。我认为这可以用来动态激活防火墙。只要您拥有有限数量的防火墙(我这样做),那么自定义RequestMatcher可以解决您的问题。