FOS 用户bundle 允许防火墙的某些角色



我在我的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

最新更新