如何在symfony 3.4中管理多个防火墙
我试图用不同的用户角色管理前端和后端。Inside security.yml添加了这个如何在symfony 3.4中管理多个防火墙,symfony,security,firewall,Symfony,Security,Firewall,我试图用不同的用户角色管理前端和后端。Inside security.yml添加了这个 security: providers: admin: entity: class: LoginBundle:Usuarios property: mail external: entity: class:
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: /
我建议你检查一下
如果默认安全性不适用于您,那么这是构建您需要的任何类型的身份验证的好方法