symfony 2:通过防火墙获取非安全页面上的当前登录用户

use*_*413 4 firewall symfony

如何在非安全页面上获取当前登录用户?

我只有一个/帐户/页面通过防火墙保护,其他页面不受保护.

我的全球导航具有以下模板(简化):

{% if app.user %}
  <a href="/account/data">...
  <a href="/logout>...
{% else %}
  <a href="/account/login">....
{% endif %}
Run Code Online (Sandbox Code Playgroud)

问题:带有注销链接的导航也应该可以在不安全的页面上访问,但是没有UsernamePasswordToken ...并且symfony显示登录链接,而不是/ logout和/ account/data链接.我使用匿名侦听器配置了所有其他页面,但它无法正常工作.

它有解决方案吗?

Eln*_*mov 8

您无法在非防火墙页面上获取用户.为整个应用启用防火墙,允许匿名访问,并通过以下方式保护应用的特定部分access_control:

security:
    firewalls:
        main:
            pattern: ^/
            anonymous: ~

    access_control:
        - { path: ^/protected, roles: ROLE_SOME }
Run Code Online (Sandbox Code Playgroud)