Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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安全性:如何在生产中禁用内存提供程序_Symfony_Security_Config - Fatal编程技术网

Symfony 3安全性:如何在生产中禁用内存提供程序

Symfony 3安全性:如何在生产中禁用内存提供程序,symfony,security,config,Symfony,Security,Config,我有一个Symfony 3.4应用程序,它使用LDAP身份验证提供程序。我最近添加了一个“in_memory”提供程序(链接),因此我可以在脱机时(即未连接到ldap服务器时)轻松测试应用程序 我理解我无法覆盖Symfony安全配置。那么,如何在生产环境中禁用“in_memory”提供程序,但在开发环境中同时允许“in_memory”和“ldap”呢 这是我的保安。yml: security: encoders: AppBundle\Security\User\LdapU

我有一个Symfony 3.4应用程序,它使用LDAP身份验证提供程序。我最近添加了一个“in_memory”提供程序(链接),因此我可以在脱机时(即未连接到ldap服务器时)轻松测试应用程序

我理解我无法覆盖Symfony安全配置。那么,如何在生产环境中禁用“in_memory”提供程序,但在开发环境中同时允许“in_memory”和“ldap”呢

这是我的保安。yml:

security:
    encoders:
        AppBundle\Security\User\LdapUser: plaintext
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN: ROLE_USER

    providers:
        chain_provider:
            chain:
                providers: [in_memory, ldap_user]
        in_memory:
            memory:
                users:
                    user:  { password: 'user',  roles: 'ROLE_USER'  }
                    admin: { password: 'admin', roles: 'ROLE_ADMIN' }
        ldap_user:
            id: app.ext_ldap_user_provider

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        login:
            pattern:  ^/login$
            security: false
            anonymous: ~

        main:
            http_basic:
                provider: in_memory
            pattern:   ^/
            anonymous: ~
            provider: ldap_user
            form_login_ldap:
                service: app.ldap
                dn_string: '%ldap_dn_string%'
                query_string: '%ldap_query_string%'
                remember_me: true
                csrf_token_generator: security.csrf.token_manager
                success_handler: AppBundle\Security\AuthenticationSuccessHandler
            logout:
                path: logout
                target: /
            logout_on_user_change: true

    access_control:
        - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
        - { path: ^/admin, roles: ROLE_ADMIN, requires_channel: https }
        - { path: ^/, roles: ROLE_USER, requires_channel: https }
使用两个防火墙,一个匹配本地主机并使用链接提供程序,另一个匹配prod主机并仅使用LDAP提供程序

这看起来像:

#config/packages/security.yaml
security:
    providers:
        chain_provider:
            chain:
                providers: [in_memory, ldap_provider]
        in_memory:
            memory:
                users:
                    foo: { password: test }
        ldap_provider:
            #...

    firewalls:
        firewall_dev:
            host: ^admin\.localhost$
            provider: chain_provider
            #...
        firewall_prod:
            host: ^admin\.example\.com$
            provider: ldap_provider
            #...
使用两个防火墙,一个匹配本地主机并使用链接提供程序,另一个匹配prod主机并仅使用LDAP提供程序

这看起来像:

#config/packages/security.yaml
security:
    providers:
        chain_provider:
            chain:
                providers: [in_memory, ldap_provider]
        in_memory:
            memory:
                users:
                    foo: { password: test }
        ldap_provider:
            #...

    firewalls:
        firewall_dev:
            host: ^admin\.localhost$
            provider: chain_provider
            #...
        firewall_prod:
            host: ^admin\.example\.com$
            provider: ldap_provider
            #...

你能显示你的security.yml文件吗?你能显示你的security.yml文件吗?