如何保护应用程序中的任何服务或方法
编辑本页警告:您正在浏览的文档欧宝官网下载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许可证。