Symfony链提供商FOSUser LDAPUser
我想在我的网站上使用两个用户提供商。首先,我希望对LDAPProvider进行测试,如果用户在LDAP中不存在,则会调用FOSUserProvider以查看该用户是否存在于数据库中。我知道我需要使用chainProviders。这是我到目前为止所做的。 LDAP连接工作正常。security.yaml:Symfony链提供商FOSUser LDAPUser,ldap,symfony4,fosuserbundle,provider,Ldap,Symfony4,Fosuserbundle,Provider,我想在我的网站上使用两个用户提供商。首先,我希望对LDAPProvider进行测试,如果用户在LDAP中不存在,则会调用FOSUserProvider以查看该用户是否存在于数据库中。我知道我需要使用chainProviders。这是我到目前为止所做的。 LDAP连接工作正常。security.yaml: security: providers: chain_provider: chain: providers: [fos_userbundle, i
security:
providers:
chain_provider:
chain:
providers: [fos_userbundle, intranet_ldap]
from_database:
entity:
class: App\Entity\User
property: username
fos_userbundle:
id: fos_user.user_provider.username #fos_user.user_manager
intranet_ldap:
#Test avec surcharge LdapUserProvider
id: App\Security\LdapUserProvider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
admin:
pattern: /admin(.*)
context: user
form_login:
provider: fos_userbundle
login_path: /admin/login
use_forward: false
check_path: /admin/login_check
failure_path: null
logout:
path: /admin/logout
target: /admin/login
anonymous: true
#switch_user: true
main:
pattern: ^/
context: user
anonymous: true
form_login_ldap:
service: Symfony\Component\Ldap\Ldap
provider: intranet_ldap
login_path: /login
check_path: /login_check
dn_string: 'DC=xxx-group, DC=lan'
query_string: '(&(sAMAccountName={username}))'
use_forward: false
always_use_default_target_path: true
default_target_path: /profile
use_referer: true
logout:
path: /logout
target: /
在fos_user.yaml中:
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
firewall_name: main
user_class: App\Entity\User
group:
group_class: App\Entity\Group
group_manager: sonata.user.orm.group_manager # If you're using doctrine orm (use sonata.user.mongodb.group_manager for mongodb)
service:
user_manager: sonata.user.orm.user_manager
我不工作。我想我忘了什么。LDAP仍然可以,但数据库中的用户不行
我想知道这是否与表单登录有关。来自FOSUserBundle的表单登录用于admin,表单登录用于main。如何两者兼用?
另外,我有一个类LdapUser和一个扩展Sonata\UserBundle\Entity\BaseUser的User类,也许它应该扩展FOSUser\Entity\BaseUser
谢谢你的帮助