我有一个使用FOSUserBundle的Symfony应用程序(不确定这是否与防火墙有关)。它有2个防火墙,都适用于站点的不同部分。一个是前端,另一个是管理区域。
我遇到的问题是,当用户登录到前端并且会话到期后(如果他们没有选择记住登录),他们会被重定向到管理防火墙注销目标
这是我的安全文件中的防火墙配置:
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_CLIENT: ROLE_USER
ROLE_ACCOUNT_MANAGER: ROLE_CLIENT
ROLE_DESIGNER: ROLE_USER
ROLE_PUBLISHER: ROLE_DESIGNER
ROLE_ADMIN: [ROLE_PUBLISHER, ROLE_ACCOUNT_MANAGER]
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
firewalls:
site:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
always_use_default_target_path: true
default_target_path: site_survey_launch
login_path: site_login
check_path: site_login_check
use_referer: true
success_handler: xd_authentication.event.listener
logout:
path: site_logout
target: site_login
success_handler: xd_authentication.event.listener
anonymous: true
portal:
pattern: ^/portal
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
always_use_default_target_path: true
default_target_path: portal_user_surveys_live
login_path: portal_login
check_path: portal_login_check
logout:
path: portal_logout
target: portal_login
anonymous: true
context: shared
acl:
connection: default
站点注销配置的success_handler处理程序返回site_login的重定向响应。更有理由对这个问题相当困惑。除非success_handler仅用于手动注销过程。
对此的任何帮助将不胜感激。我现在一直想弄清楚几个月来发生了什么。
答案 0 :(得分:0)
我认为防火墙定义的顺序很重要,因为site
具有模式^/
,我认为它处理来自^/portal
网址的请求。您应该在portal
防火墙之前定义site
防火墙。