gpt4 book ai didi

symfony - @Security 注释的自定义消息

转载 作者:行者123 更新时间:2023-12-04 14:00:25 25 4
gpt4 key购买 nike

我正在尝试使用 @Security我的路线的注释。像这样:

/**
* @return Response
* @Route("/action")
* @Security("has_role('ROLE_USER')")
* @Template()
*/
public function someAction()
{
return array();
}

当安全限制触发异常时,我收到消息 Expression "has_role('ROLE_USER')" denied access .

向最终用户显示这是 Not Acceptable ,因此我试图找到一种自定义注释消息的方法。

简单的解决方法是不使用 @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注释?

最佳答案

一旦我意识到这是不可能的,我就做了一个 pull requestSensio FrameworkExtra Bundle使这成为可能。

此 PR 允许通过指定消息参数来自定义显示的消息,例如

@Security("has_role('ROLE_USER')",message="You have to be logged in")

关于symfony - @Security 注释的自定义消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24328054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com