@Security注释和用户参数

时间:2016-01-14 18:00:37

标签: symfony

在控制器中,我有一个用于显示用户的操作。参数是要显示的用户,并通过参数转换器自动获取。 现在我想保护此操作(显示用户配置文件),以便只有具有USER_VIEW权限(当前实现为自定义选民)的用户才能访问。 使用@Security注释看起来像:

/**
 * @Security("is_granted('USER_VIEW', user)")
 */
public function showAction(User $user) {...}

这不起作用,因为表达式中的用户变量引用了经过身份验证的用户而不是action参数。 The documentation提到了这一点,但这很不幸。

如何解决此问题并将$ user参数传递给安全表达式?我可以重命名它,但也许还有更好的事情要做。

我还想知道这是否应该被视为Symfony中的一个错误,因为'用户'是一个相当常见的词,也许它应该被重命名为更具体的词,例如“authenticated_user'或者' security_user'或者其他的东西。对于Symfony传递给表达式的其他3个变量也是如此:'令牌','请求','角色'。

感谢。

0 个答案:

没有答案