Sca*_*ase 6 symfony symfony-security
我正在尝试@Security为我的路线使用注释.像这样:
/**
* @return Response
* @Route("/action")
* @Security("has_role('ROLE_USER')")
* @Template()
*/
public function someAction()
{
return array();
}
Run Code Online (Sandbox Code Playgroud)
当安全限制触发异常时,我收到消息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();
}
Run Code Online (Sandbox Code Playgroud)
但这不太方便,可读性也差.
是否可以将自定义消息写入@Security注释?
Sca*_*ase 10
一旦我意识到这是不可能的,我就提出了拉动请求,Sensio FrameworkExtra Bundle以使其成为可能.
此PR允许通过指定消息参数来自定义显示的消息
@Security("has_role('ROLE_USER')",message="You have to be logged in")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |