Symfony2安全防火墙重定向

时间:2014-10-12 11:51:41

标签: security symfony redirect firewall

在防火墙的“security.yml”文件中,我希望在用户未登录时执行重定向操作。 但是此重定向不会转到登录表单。我想将无用的用户重定向到主页(或带有主页链接的403页)。

anonimous_users --go - > secured_pa​​ge --redirect - > home_page

但我不知道是否可能,如果是,我怎么能在security.yml中写这个。

你能帮我吗?

2 个答案:

答案 0 :(得分:0)

在不知道您的代码的情况下,这是基本的工作流程:您需要某种访问控制..用户需要特定角色才能访问的区域:

access_control:
    - { path: ^/secret/, roles: ROLE_LOGGED_IN_USER }

您可以根据需要进行调整。到目前为止,访问url / secret /将引导用户访问您在表单登录下提供的登录页面。请注意,防火墙并不意味着将明确重定向用户。防火墙只是页面上的一个区域 - 在某种情况下 - 比方说 - 监督。阻止角色的内容发生在access_control

请继续阅读:http://symfony.com/doc/current/book/security.html

答案 1 :(得分:0)

是的,我看过这种方法。但它没有脚,因为我有两个登录protocole。登录表格和CAS。因此,如果我使用access_controle,安全性会将无用用户重定向到登录表单页面,如果它是CAS用户,那就不好了。

我找到了一个解决方案,我写了3个安全区域。一个用于login_form,一个用于CAS,最后一个是我的管理页面,其中一个false login_form,他重定向到我的主页,如下所示:

admin_area: pattern: ^/admin context: riac_auth form_login: login_path: /home

如果在其中一个区域中识别出其他2个安全区域的相同上下文,则您将登录管理区域。

现在我尝试使用2个登录表单并且正常工作。现在我需要使用BeSimpleSsoBundle。