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

时间:2013-03-12 14:14:48

标签: symfony firewall

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

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

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

{% if app.user %}
  <a href="/account/data">...
  <a href="/logout>...
{% else %}
  <a href="/account/login">....
{% endif %}

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

有解决方案吗?

1 个答案:

答案 0 :(得分:8)

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

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

    access_control:
        - { path: ^/protected, roles: ROLE_SOME }