一种方法是使用您的 security.yml 文件来保护一组路由。例如;
access_control:
...
- { path: ^/admin, roles: [ROLE_ADMIN] }
然后,当您创建您的操作时,您只需为它们提供一个带有管理员前缀的路由,以保护它们免受除管理员之外的所有用户的攻击。我的示例使用注释进行路由,但您可以使用 yml 执行相同的操作。
/**
* Edit a Blog entity.
*
* @Route("/admin/blog/{id}/edit", name="blog_edit")
* @Template()
*/
public function editAction()
{
...
或者,您可以通过为类添加前缀来保护控制器中的每个操作:
/**
* AdminBlog controller.
*
* @Route("/admin/blog")
*/
class AdminBlogController extends Controller
{
...
然后创建另一个控制器来处理向最终用户显示博客文章并为他们提供不安全的路由。
如果您想在单独的包中保护其他区域,您可以通过使用安全和不安全的控制器/methods.actions 以相同的方式进行操作