编程语言
首页 > 编程语言> > php-Symfony2的安全设置(无需登录)

php-Symfony2的安全设置(无需登录)

作者:互联网

我一直在尝试使用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

标签:authentication,symfony,security,authorization,php
来源: https://codeday.me/bug/20191201/2083838.html