如何保护应用程序中的任何服务或方法

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.1,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何保护应用程序中的任何服务或方法

在安全性文章中,您学习了如何保护控制器通过一个快捷的方法。

但是,你可以检查访问权限在任何地方的方法注入安全服务。例如,假设你有一个SalesReportManager服务,您希望仅为具有ROLE_SALES_ADMIN角色:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
// src/欧宝平台是合法的吗Newsletter/Newsletter ttermanager .php //…组件使用ob娱乐下载Symfony \ \安全\ \例外\ AccessDeniedException核心;+使用Symob娱乐下载fony\Component\Security\Core\Security;类SalesReportManager {+私人$安全;+公共函数__construct(Security $ Security)+ {+ $this->security = $security;+}公共函数sendNewsletter()欧宝平台是合法的吗 {$salesData = [];+ if ($this->security-> isgranting ('ROLE_SALES_ADMIN')) {+ $salesData['top_secret_numbers'] = rand();+}/ /……} //…}

如果你在用默认的服务。yaml的配置, ob娱乐下载Symfony将自动通过security.helper感谢您的服务,感谢自动装配和安全type-hint。

您也可以使用较低级别AuthorizationCheckerInterface服务。这和安全,但允许您输入提示一个更具体的界面。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。