我正在尝试@Security
为我的路线使用注释。像这样:
/**
* @return Response
* @Route("/action")
* @Security("has_role('ROLE_USER')")
* @Template()
*/
public function someAction()
{
return array();
}
当安全限制引发异常时,我收到消息Expression "has_role('ROLE_USER')" denied access
。
向最终用户显示这是不可接受的,因此我正在尝试找到一种方法来自定义注释消息。
简单的解决方法是不使用@Secutity
注释并编写如下代码:
/**
* @return Response
* @Route("/action")
*
* @Template()
*/
public function someAction()
{
if (!$this->get('security.context')->isGranted('ROLE_USER')) {
throw new AccessDeniedException('You have to be logged in in order to use this feature');
}
return array();
}
但这不太方便且可读性较差。
是否可以将自定义消息写入@Security
注释?