2

我正在尝试在我的 symfony 项目中实现 fosUserBundle。

我已经成功安装了一个配置好的包。

但是现在,当我登录时,我收到以下错误消息:

您必须在安全防火墙配置中使用 form_login 配置要由防火墙处理的检查路径。

为什么会这样?我应该去哪里找那个铅?

谢谢,您将在安全文件下方找到:

security:
    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        fos_userbundle:
            id: fos_user.user_manager
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        # Firewall pour les pages de connexion, inscription, et récupération de mot de passe
        login:
            pattern:   ^/(login$|register|resetting)  # Les adresses de ces pages sont login, register et resetting
            anonymous: true                           # On autorise bien évidemment les anonymes sur ces pages !

        admin:
            switch_user:        true
            context:            user
            pattern:            /admin(.*)
            form_login:
                provider:       fos_userbundle
                login_path:     /login
                use_forward:    false
                check_path:     /admin/login_check
                failure_path:   null
                use_referer:    true
            logout:
                path:           /admin/logout
                target:         /login_path
    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

其余文件与官方文档非常相似

4

1 回答 1

0

您是否尝试删除“access_control”部分中的第一行?因为您已经在登录防火墙中指定了 anonymous:true 。

于 2012-07-31T21:40:31.550 回答