-1

这是我的 security.yml 文件

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            login_path: project_frontend_main_index
        logout: 
            path: project_frontend_main_logout
            anonymous: true

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/, role: ROLE_ADMIN } 
    - { path: ^/alerts*, role: ROLE_USER }

我的问题是注销问题,我无法在主控制器中访问注销功能。单击“注销”时出现此错误 您必须在安全防火墙配置中激活注销。

4

2 回答 2

0

删除匿名:真,或者至少让它假。这将解决您的问题。

于 2015-05-18T12:11:19.793 回答
0

尝试将其添加到您的顶部access_control

- { path: ^/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY } 

此外,您必须添加targetfor logout(用户将被重定向到的位置:

logout: 
    path: project_frontend_main_logout
    target: / #or a specific public route

如果这些都不起作用,请使用可在此处找到的奏鸣曲项目的默认配置:

security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager

    firewalls:
        main:
            pattern:      .*
            form-login:
                provider:       fos_userbundle
                login_path:     /login
                use_forward:    false
                check_path:     /login_check
                failure_path:   null
            logout:       true
            anonymous:    true
于 2015-05-18T12:28:07.093 回答