我试图弄清楚为什么我不能将多个用户提供者设置为一个提供者。目前我正在配置 ACL。对于用户提供者,我希望有几个“硬编码”用户和将从数据库加载的用户。
阅读文档说明您不需要拥有两个用户提供程序 - 一个用于in_memory
用户,一个用于database
用户。您应该能够将它们组合成一个用户提供程序(这是我正在尝试做的)。
建议的配置是:
security:
providers:
main_provider:
memory:
users:
foo: { password: test }
entity:
class: Acme\UserBundle\Entity\User,
property: username
我的配置是:
security:
providers:
main_provider:
memory:
users:
foo: { password: test }
entity:
class: Company\EntitiesBundle\Entity\User,
property: username
不幸的是,我得到了这个例外:
InvalidConfigurationException: Invalid configuration for path "security.providers.main_provider": You cannot set multiple provider types for the same provider
但是,如果我设置两个不同的提供者并将它们链接起来,它就可以正常工作。我不明白为什么会发生这种情况?它在文档中明确说明 - you can accomplish this even more easily by combining the two sources into a single provider
。
我在这里想念什么?