我一直在尝试使用symfony2进行设置,并且已经进行了一段时间,但是我遇到了一些麻烦.我不知道如何进行安全设置.在我们的机构中,我们安装了cas(单点登录)和一个静态类来处理所有身份验证内容.它称为网守. Gatekeeper负责所有角色检查和用户名登录.我希望能够使用symfony2的授权内容,但不使用任何身份验证内容.这可能吗?我已经阅读了文档,但似乎这些东西太紧了,无法分开.有人对此主题有见解吗?
解决方法:
如果您在请求到达防火墙之前使用Gatekeeper类进行身份验证,则可以通过扩展AbstractPreAuthenticatedListener并实现getPreAuthenticatedData()来创建“预身份验证”(即,身份验证发生在防火墙之前)侦听器:
class GatekeeperListener extends AbstractPreAuthenticatedListener
{
protected function getPreAuthenticatedData(Request $request)
{
return array(
Gatekeeper::getCurrentUsername(), // username
'', // credentials
);
}
}
您将需要创建一个安全工厂,以便向系统引入新的身份验证侦听器.此食谱文章中介绍了此过程:
How to create a custom Authentication Provider: The Factory
您的security.yml应该看起来像这样:
security:
factories:
- "%kernel.root_dir%/../src/Acme/DemoBundle/Resources/config/security_factories.yml"
firewalls:
main:
pattern: .
gatekeeper: true