在测试环境中没有来自TokenStorage的令牌

时间:2017-06-19 09:29:05

标签: php symfony symfony-2.8

我想将登录用户的ID包含在我的记录器中。 所以我添加了monolog.processor,将用户ID添加到记录的“额外”部分,并添加了一个显示ID的自定义格式字符串。

在我的开发环境中,这(大部分)按预期工作,但在测试环境中它根本不起作用,TokenStorage总是在null上返回getToken()

开发或测试没有特定的security配置。配置之间的最大区别是这部分:

framework:
  test: ~
  session:
    storage_id: session.storage.mock_file
  profiler:
    collect: false

我已将此添加到我的dev配置但无法重现症状。我只能通过让symfony认为它真的在测试中来重现。

说实话,我甚至不知道从哪里开始调试这个。

任何可能导致此行为的想法?
我有什么想法可以调试这个,所以我可以得到答案吗?

1 个答案:

答案 0 :(得分:-1)

为了拥有一个令牌,你应该进入symfony防火墙。

如果任何防火墙与URI不匹配,则不会触发symfony安全性,也不会有令牌。

如果是公共区域,则允许来自root' / *'的匿名用户并为其余的URI(或操作)使用ACL。匿名用户将具有IS_AUTHENTICATED_ANONYMOUSLY

角色
# app/config/security.yml
security:
    firewalls:
        main:
            pattern: ^/
            anonymous: ~

文档: http://symfony.com/doc/current/security.html