有没有办法配置嵌套防火墙?这就是我想要做的事情:
用户进入网站,网站询问他的年龄。这是第一个杉木墙。如果他进入18岁以上,他会通过第一防火墙进行身份验证并重定向到第二个防火墙的登录,否则他会收到错误页面。
在第二个防火墙中,他必须输入代码。如果代码是正确的,他会通过第二个防火墙进行身份验证,否则他可以再次输入代码(他不能再使用第一个防火墙进行身份验证)。
答案 0 :(得分:0)
您可能会获得角色所需的行为。例如,ROLE_LT_18
和ROLE_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
{
...
}