在我的第一个 symfony 项目上工作时,我遵循了关于安全机制的教程。我开始在我的防火墙中使用“http_basic”模式。奇怪的是它只能在开发模式下工作,而不是在生产模式下工作。这是我的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 创建了这个项目。
我看到的是,如果我使用 path:app_dev.php/B2B
我可以看到 login/pwd 界面并且一切正常,但是如果我使用 path app.php
,我可以直接访问我的站点而无需任何授权请求。进行任何security.yml
更改后,我使用以下命令清除了缓存:php console cache:clear --env=prod --no-debug
我哪里错了?