ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-12-01 22:33:14  阅读:420  来源: 互联网

标签:authentication symfony security authorization php


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有