Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在symfony 3.4中管理多个防火墙_Symfony_Security_Firewall - Fatal编程技术网

如何在symfony 3.4中管理多个防火墙

如何在symfony 3.4中管理多个防火墙,symfony,security,firewall,Symfony,Security,Firewall,我试图用不同的用户角色管理前端和后端。Inside security.yml添加了这个 security: providers: admin: entity: class: LoginBundle:Usuarios property: mail external: entity: class:

我试图用不同的用户角色管理前端和后端。Inside security.yml添加了这个

security:
    providers:
        admin:
            entity:
                class:      LoginBundle:Usuarios
                property:   mail
        external:
            entity:
                class:      LoginBundle:UsuariosExternos
                property:   mail

    firewalls:
        # disables authentication for assets and the profiler, adapt it according to your needs
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: true
            provider: admin
            form_login:
                login_path: /
            logout:
                path:   logout
                target: /
            access_denied_url: /eu/
        external:
            anonymous: true
            provider: external
            form_login:
                login_path: /
            logout:
                path:   logoutExternalUser
                target: /
使用此代码时,外部防火墙不工作,当我以外部(前端)身份登录时,注销路径为/logout,而不是logoutExternalUser。 同样,如果我将路径/admin写入/admin,它将转到/而不是/admin/login 我们尝试使用AccessDeniedHandlerInterface,但不知道如何在该实例中获取用户rol


有什么帮助吗?

您缺少模式。这就是为什么防火墙没有着火

您应该设置它侦听的模式。

检查,我更新了代码

security:
providers:
    admin:
        entity:
            class:      LoginBundle:Usuarios # idk if you realized this correctly
            property:   mail
    external:
        entity:
            class:      LoginBundle:UsuariosExternos
            property:   mail

firewalls:
    admin:
        pattern: ^/admin # pattern in which this will activate
        anonymous: true
        provider: admin
        form_login:
            login_path: adminLogin # implement route
        logout:
            path:   security_logout # should work and destroy session
            target: /
        access_denied_url: /eu/
    external:
        pattern: ^/external
        anonymous: true
        provider: external
        form_login:
            login_path: loginExternal # implement route
        logout:
            path:   security_logout 
            target: /
我建议你检查一下

如果默认安全性不适用于您,那么这是构建您需要的任何类型的身份验证的好方法