我使用Symfony 2.3并且我已经创建了一个custom user provider,到目前为止一切正常,除了以下消息显示:
奇怪的是,例如在Twig,我能做到:
{{ app.user.username }}
它可以打印已登录用户的用户名。
我已在view跟踪了该邮件的打印情况,这是相应的controller。
似乎使用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 }