美文网首页全栈Web开发者
Symfony -- Security 学习笔记

Symfony -- Security 学习笔记

作者: 0d601f651140 | 来源:发表于2016-06-13 15:48 被阅读341次
    • 初始化 security.yml 文件
    # app/config/security.yml
    security:
        providers:
            in_memory:
                memory: ~
    
        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt)|css|images|js)/
                security: false
    
            default:
                anonymous: ~ 
    

    新建symofny项目的时候,上面的配置文件已经配置好了,上面的配置文件是配置用户如何被授权的,比如是用login form 或者 HTTP 或者 API token等等

    • HTTP 认证授权方式
    security:
        providers:
            in_memory:
                memory: ~
    
        firewalls:
            dev:
                pattern: ^/(_(profiler|wdt|error)|css|images|js)/
                security: false
    
            default:
                anonymous: ~
                http_basic: ~
    
        access_control:
            - { path: ^/login, roles: ROLE_USER }
    
    
    报错1:

    InvalidConfigurationException in ArrayNode.php line 317:
    Unrecognized option "0" under "security.firewalls.access_control"

    解决:

    对于.yml 文件空格也是起作用的, access_control中空格位置应该和 firewalls一样的

    报错2:

    [Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]
    The service "profiler" has a dependency on a non-existent service "debug.security.access.decision_manager".

    解决:

    如果env=prod就会报这个错误,在app.php, 或者 app_dev.php 禁用一个就可以了
    app.php 中 $kernel = new AppKernel('dev', false); false 改为 true 就好了
    参考: https://github.com/symfony/symfony/issues/19022

    <?php
    
    namespace AppBundle\Controller;
    
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    
    class RwpsController extends Controller
    {
        /**
         * @Route("/login")
         */
        public function indexAction(Request $request)
        {
    
            //return $this->render('rwps/index.html.twig');
            return new Response('<html><body>Admin page!</body></html>');
    
        }
    }
    
    
    实现HTTP 认证了
    login.jpg
    • 除了HTTP 认证方式以外,还有database 的认证方式,等等! 后面持续更新!

    相关文章

      网友评论

      • 大卫高博飞:你这个笔记记得太浅
        大卫高博飞:@Nick_Cai 加油!
        0d601f651140:@大卫高博飞 :努力中,才入行不到一年,在学校里学的太菜了,努力写有一些有水平的东西
      • brandonxiang:森哥,你准备很久了吧,这些笔记

      本文标题:Symfony -- Security 学习笔记

      本文链接:https://www.haomeiwen.com/subject/qqpydttx.html