Symfony 3 - 无法在安全性上实现FOSUser登录,因为我也使用CAS身份验证

问题描述 投票:0回答:1

我想在我的security.yml上添加我的FOSUser登录方法,因为我使用了身份验证CAS,但我想在我的主页上使用登录表单进行身份验证(数据库上的用户表与用户CAS身份验证不同)

所以我像这样配置了我的security.yml:

# app/config/security.yml
security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
    app:
       id: bes_auth.user_provider

firewalls:

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

    public:
        pattern: ^accueil
        security: false
        anonymous: true

    main:
        logout_on_user_change: true
        pattern: ^/(admin|profile|packages|securiteInformatique|logout)
       # pattern: ^/(?!accueil)


        guard:
            authenticators:
                - app.security.login_form_authenticator:
                    check_path: fos_user_check_path

                - bes_auth.authenticator

        entry_point: Site\PagesBundle\Security\LoginFormAuthenticator


        logout:
            path:   deconnexion #nom de la route de déconnexion
            target: /
            success_handler: bes_auth.authenticator
        anonymous:    true

access_control:
    - { path: ^/admin, role: ROLE_SUPER_ADMIN }
    - { path: ^/accueil, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, role: ROLE_USER }

但我现在有这个错误:

路径“security.firewalls.main.guard.authenticators.0”的类型无效。期望的标量,但得到阵列。

是关于 :

        guard:
            authenticators:
                - app.security.login_form_authenticator:
                    check_path: fos_user_check_path

                - bes_auth.authenticator

            entry_point: Site\PagesBundle\Security\LoginFormAuthenticator

但是我没有看到什么是错的,有人可以帮助我吗?

php symfony fosuserbundle
1个回答
0
投票

只需更改第一个Guard Authenticator而不使用check_path选项:fos_user_check_path如下:

...........

guard:
    authenticators:
        - app.security.login_form_authenticator
        - bes_auth.authenticator

如果你想要更多的解释,这是文件:here

谢谢,我希望它对你有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.