我在我的Symfony 3.3项目中使用FOS UserBundle,我有两个防火墙,因为管理员和用户从不同的登录表单(使用不同的URL(连接。我想仅在将用于日志记录的帐户授予ADMIN_ROLE时才限制对管理仪表板的访问。也就是说,如果我尝试使用简单的用户帐户进行身份验证,则会收到消息"凭据错误"。有没有办法告诉防火墙只允许特定角色的用户连接?
我的安全.yml防火墙部分:
firewalls:
admin:
pattern: ^/admin
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
login_path: /admin
check_path: /admin/login_check
default_target_path: /admin
success_handler: app.security.adminauthentication_handler
failure_handler: app.security.adminauthentication_handler
logout:
path: /admin/logout
target: /admin
anonymous: true
context: application
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
success_handler: app.security.authentication_handler
failure_handler: app.security.authentication_handler
logout: true
anonymous: true
请注意,我对两个登录表单都使用 AJAX。
谢谢
只需在
安全性下将其添加到security.yml中,如下所示:
> security :
access_control :
- { path: ^/mysite/dashboard/, role: ROLE_ADMIN }
你必须
定义access_control