【发布时间】:2021-03-13 00:18:58
【问题描述】:
我正在努力让ShibbolethBundle (https://github.com/rmoreas/ShibbolethBundle) 工作。但坚持在登录时创建一个新用户。我发现userProvider 不是正确的类(在这里实现ShibbolethUserProviderInterface 的类https://github.com/rmoreas/ShibbolethBundle/blob/master/Security/ShibbolethAuthProvider.php#L109
我的自定义提供程序是这样定义的:
namespace Meot\FormBundle\Entity;
...
class UserRepository extends EntityRepository implements ShibbolethUserProviderInterface {
...
}
安全性.xml
....
security:
providers:
main_provider:
entity: { class: Meot\FormBundle\Entity\User }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/
shibboleth: ~
logout:
path: /logout
target: /
success_handler: security.logout.handler.shibboleth
我发现这本食谱 (http://symfony.com/doc/current/cookbook/security/entity_provider.html) 指出
为了完成实现,安全层的配置 必须更改以告诉 Symfony 使用新的自定义实体提供程序 而不是通用的 Doctrine 实体提供者。这是微不足道的 通过删除属性字段来实现 security.yml 的 security.providers.administrators.entity 部分 文件。
试过了,没用。用户提供者的类仍然是Symfony\Bridge\Doctrine\Security\User\EntityUserProvider。
我想知道通过删除属性字段,Symfony 是如何找到我的自定义用户提供程序的?
谢谢。
【问题讨论】:
标签: symfony symfony-2.1 shibboleth symfony-security