Php Symfony登录不适用于具有相同模式的多个防火墙
我有一个关于symfony安全的问题 My security.yml的设置如下:Php Symfony登录不适用于具有相同模式的多个防火墙,php,regex,security,symfony,Php,Regex,Security,Symfony,我有一个关于symfony安全的问题 My security.yml的设置如下: security: encoders: Symfony\Component\Security\Core\User\User: plaintext OVB\DBBundle\Entity\User\User: id: ovb.password.encoder providers: in_memory: m
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
OVB\DBBundle\Entity\User\User:
id: ovb.password.encoder
providers:
in_memory:
memory:
users:
test: { password: ******, roles: 'ROLE_ADMIN' }
main:
entity:
class: OVB\DBBundle\Entity\User\User
property: email
firewalls:
secured_area:
provider: in_memory
pattern: ^/
anonymous: ~
http_basic:
realm: "Secured Test Area"
main:
pattern: ^/
provider: main
form_login:
login_path: /login
check_path: ovb_login_check
use_referer: true
logout: true
anonymous: ~
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
access_control:
- { path: ^/, roles: ROLE_ADMIN }
- { path: ^/login_check, roles: ROLE_USER }
如你所见,我有两个相同模式的防火墙。第一个(安全区域)是保护我的测试环境(HTTP身份验证),第二个是针对普通网站用户(表单登录)。
单独而言,它们都能工作,但在一起却不能,我认为这是因为它们使用相同的模式。
有人知道怎么做吗
谢谢大家! 在你的基地
security.yml
:
security:
#...
providers:
main:
entity:
class: 'OVB\DBBundle\Entity\User\User'
property: email
dev:
memory:
users:
admin: { password: ******, roles: 'ROLE_ADMIN' }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
provider: main
form_login:
login_path: /login
check_path: ovb_login_check
use_referer: true
logout: true
anonymous: ~
security:
firewalls:
main:
http_basic:
provider: dev
在您的
安全\u dev.yml
中:
security:
#...
providers:
main:
entity:
class: 'OVB\DBBundle\Entity\User\User'
property: email
dev:
memory:
users:
admin: { password: ******, roles: 'ROLE_ADMIN' }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
provider: main
form_login:
login_path: /login
check_path: ovb_login_check
use_referer: true
logout: true
anonymous: ~
security:
firewalls:
main:
http_basic:
provider: dev
为什么要创建两个具有相同模式的防火墙?正如我所说,第一个(安全区域)是专门针对我的开发环境的,我不希望其他人能够访问它。但我仍然希望能够在此环境中测试常规用户登录。当网站上线时,我将删除“安全区域”防火墙此管理员用户是否与a
OVB\DBBundle\Entity\user\user
一样使用网站?管理员用户(或测试用户)是否能够访问整个网站。普通用户专门用于在网站上发布内容和更改信息。所以不,现在(在测试环境中)需要管理员用户访问网站,不需要普通用户(仅用于发布到网站)使用标准登录表单的管理员用户不是更好的选择吗?它不完全符合我的要求,但它确实给了我另一个可行的想法。我在default security.yml文件中设置了“secured_area”防火墙,在dev security文件中设置了主防火墙,并让它覆盖“secured_area”防火墙。