ant*_*ony 4 security authentication firewall symfony
我的Symfony2项目中有两个防火墙,"admin"和"client".它们都使用相同的实体提供者.
我遇到的问题是,当我退出一个防火墙时,我也会退出另一个防火墙.我不希望这种情况发生.
我的实施或策略是否有问题.我确实想过拥有一个防火墙并通过用户角色管理对管理员和客户区的访问.但是,这并不能避免我上面描述的注销场景.
下面是我的security.yml(有点简化).
admin:
pattern: ^/admin
form_login:
provider: acme_userbundle
login_path: admin_login
check_path: admin_security_check
logout:
path: admin_logout
target: admin_login
anonymous: false
client:
pattern: ^/client
form_login:
provider: acme_userbundle
login_path: client_login
check_path: client_security_check
logout:
path: client_logout
target: client_login
anonymous: false
Run Code Online (Sandbox Code Playgroud)
解决方案是添加以下配置行:
invalidate_session: false
Run Code Online (Sandbox Code Playgroud)
(参考:http://symfony.com/doc/current/reference/configuration/security.html)
该行应添加到logout
每个防火墙的配置块中.这样,当您从其中一个注销时,会话将不会被销毁,您将继续登录其他会话.
security:
...
firewalls:
...
admin:
pattern: ^/admin
...
logout:
path: admin_logout
...
invalidate_session: false #This line should do the trick!
...
client:
pattern: ^/client
...
logout:
path: client_logout
...
invalidate_session: false #This line should do the trick!
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2102 次 |
最近记录: |