微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐