symfony2 security.yml仅在dev环境中工作

时间:2012-11-26 16:22:34

标签: security symfony environment

在我的第一个symfony项目上工作时,我正在学习有关安全机制的教程。我开始在防火墙中使用“http_basic”模式。奇怪的是它只能在开发模式下工作而不能在prod中工作。这是我的security.yml

jms_security_extra:
    secure_all_services: false
    expressions: true

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

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        in_memory:
            memory:
                users:
                    test: {password: test, roles: [ 'ROLE_USER'] }
                    admintest: { password: admintest, roles: [ 'ROLE_ADMIN' ] }

    firewalls:

        prod:
            pattern: ^/
            http_basic:
                realm: "Secured B2B Area"
            security: true

    access_control:
        - { path: ^/B2B, roles: ROLE_USER }
        - { path: ^/, roles: ROLE_ADMIN }

我使用NetBeans创建了项目。

我看到的是,如果我使用路径:app_dev.php/B2B我可以看到登录/ pwd界面,一切正常,但如果我使用路径app.php,我可以直接访问我的网站没有任何授权请求。 在进行任何security.yml更改后,我使用以下命令清除了缓存:php console cache:clear --env=prod --no-debug

我哪里错了?

1 个答案:

答案 0 :(得分:2)

DEV和PROD环境使用相同的会话上下文。因此,您必须退出(从任何环境)才能看到登录表单。