Symfony2 - 嵌套防火墙

时间:2014-12-04 23:07:17

标签: symfony

有没有办法配置嵌套防火墙?这就是我想要做的事情:

用户进入网站,网站询问他的年龄。这是第一个杉木墙。如果他进入18岁以上,他会通过第一防火墙进行身份验证并重定向到第二个防火墙的登录,否则他会收到错误页面。

在第二个防火墙中,他必须输入代码。如果代码是正确的,他会通过第二个防火墙进行身份验证,否则他可以再次输入代码(他不能再使用第一个防火墙进行身份验证)。

1 个答案:

答案 0 :(得分:0)

您可能会获得角色所需的行为。例如,ROLE_LT_18ROLE_ADULT。然后进行访问控制,例如:

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/youth, role: ROLE_LT_18 }
    - { path: ^/adult, role: ROLE_ADULT }

在控制器中,这样的事情:

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;

    /**
     * 
     * @Route("/adult")
     * @Security("has_role('ROLE_ADULT')")
     */
    class AdminController extends Controller
    {
    ...
    }

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;

/**
 * 
 * @Route("/youth")
 * @Security("has_role('ROLE_LT_18')")
 */
class YouthController extends Controller
{
...
}