Symfony 安全和 twig 渲染功能
Symfony security and twig Render funcion
我有这个场景。
我的网站有一个安全部分。我认为安全配置正确。
如果我尝试从浏览器打开受保护的 URL,系统会要求我输入用户名和密码。
Symfony 分析器在登录后正确显示用户上下文
主页(根路由)不安全(探查器在这里显示匿名上下文)
现在的问题:
如果,在主页的树枝模板中,我放了这样的东西
{{ render(path('secured_route')) }}
安全路由内容渲染完成!
我希望得到某种异常或登录 window!
这是一个错误还是我遗漏了什么?
以这种方式呈现控制器时,您将绕过路由器,因此与路由相关的证券也会被绕过。
你能做的最好的事情是使用 @Security 注释将你的控制器限制为登录用户:
/**
* @Security("has_role('IS_AUTHENTICATED_REMEMBERED')")
*/
通过使用 twig 中的 "render",您将跳过与路由相关的安全检查,如果您不需要在匿名上下文中获取内容,您可以在呈现控制器之前检查 Twig 中的角色,类似于:
{% if is_granted('ROLE_USER') %}
{{ render(path('secured_route')) }}
{% endif %}
我有这个场景。 我的网站有一个安全部分。我认为安全配置正确。 如果我尝试从浏览器打开受保护的 URL,系统会要求我输入用户名和密码。 Symfony 分析器在登录后正确显示用户上下文 主页(根路由)不安全(探查器在这里显示匿名上下文)
现在的问题: 如果,在主页的树枝模板中,我放了这样的东西
{{ render(path('secured_route')) }}
安全路由内容渲染完成! 我希望得到某种异常或登录 window! 这是一个错误还是我遗漏了什么?
以这种方式呈现控制器时,您将绕过路由器,因此与路由相关的证券也会被绕过。
你能做的最好的事情是使用 @Security 注释将你的控制器限制为登录用户:
/**
* @Security("has_role('IS_AUTHENTICATED_REMEMBERED')")
*/
通过使用 twig 中的 "render",您将跳过与路由相关的安全检查,如果您不需要在匿名上下文中获取内容,您可以在呈现控制器之前检查 Twig 中的角色,类似于:
{% if is_granted('ROLE_USER') %}
{{ render(path('secured_route')) }}
{% endif %}