Я использую Symfony 2.3, и я создал пользовательский провайдер и пока все работает нормально, за исключением следующего сообщения:
Странно то, что, например, в Twig я могу сделать:
{{ app.user.username }}
И это прекрасно печатает имя пользователя вошедшего в систему пользователя.
Я отслеживал печать этого сообщения в этом Посмотреть и это соответствующий контроллер.
Кажется что класс SecurityDataCollector
инициализируется с параметром типа SecurityContextInterface
со значением $this->get('security.context', ContainerInterface::NULL_ON_INVALID_REFERENCE)
Кажется, проблема в том, что security.context
не существует, и я не знаю, как установить этот контекст безопасности, и в примере они не устанавливают их. Как я могу это исправить?
—- app / config / security.yml —-
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
encoders:
Company\Shared\CompanyldapBundle\Security\User\ldapUser: plaintext
providers:
ldap_user_provider:
id: ldap_user_provider
firewalls:
main:
provider: ldap_user_provider
pattern: ^/
form_login:
login_path: login
check_path: login_check
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/(_(profiler|wdt)|css|images|js)/, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
Задача ещё не решена.
Других решений пока нет …