我想在我的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
但是我没有看到什么是错的,有人可以帮助我吗?
只需更改第一个Guard Authenticator而不使用check_path选项:fos_user_check_path如下:
...........
guard:
authenticators:
- app.security.login_form_authenticator
- bes_auth.authenticator
如果你想要更多的解释,这是文件:here
谢谢,我希望它对你有所帮助