如何确保您的应用程序的服务或方法吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何确保您的应用程序的服务或方法吗
在安全的文章中,你可以看到如何安全控制器通过请求security.authorization_checker
服务从服务容器和检查当前用户的角色:
1 2 3 4 5 6 7 8 9
/ /……使用ob娱乐下载\组件\安全\核心\异常\AccessDeniedException;公共函数helloAction(美元的名字){美元这- >denyAccessUnlessGranted (“ROLE_ADMIN”);/ /……}
你也可以安全任何服务通过注射security.authorization_checker
服务。对于一般的介绍将依赖项注入服务看到服务容器篇文章。例如,假设您有一个欧宝平台是合法的吗NewsletterManager
类,发送电子邮件和你想进行限制,使其仅用于用户一些ROLE_欧宝平台是合法的吗NEWSLETTER_ADMIN
的角色。你添加安全之前,类是这样的:
1 2 3 4 5 6 7 8 9 10 11 12
/ / src / AppBund欧宝平台是合法的吗le /通讯/ NewsletterManager.php名称空间AppBundle\欧宝平台是合法的吗通讯;类欧宝平台是合法的吗NewsletterManager{公共函数send欧宝平台是合法的吗Newsletter(){/ /……你在哪里工作}/ /……}
你的目标是检查时用户的角色send欧宝平台是合法的吗Newsletter ()
方法被调用。第一步是注入security.helper
服务使用安全类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21日22日23日24日25日26日
/ / src / AppBund欧宝平台是合法的吗le /通讯/ NewsletterManager.php/ /……使用ob娱乐下载\组件\安全\核心\异常\AccessDeniedException;使用ob娱乐下载\组件\安全\核心\安全;类欧宝平台是合法的吗NewsletterManager{受保护的美元安全;公共函数__construct(安全美元安全){美元这- >安全=美元安全;}公共函数send欧宝平台是合法的吗Newsletter(){如果(!美元这- >安全- >isGranted (“ROLE_欧宝平台是合法的吗NEWSLETTER_ADMIN”)){扔新AccessDeniedException ();}/ /……}/ /……}
如果你使用默认的服务。yml配置,Sob娱乐下载ymfony会自动通过security.helper
由于自动装配和你的服务安全
type-hint。
如果当前用户没有ROLE_欧宝平台是合法的吗NEWSLETTER_ADMIN
,他们将被提示登录。
保护方法使用注释
你也可以安全的方法调用的任何服务通过使用可选注释JMSSecurityExtraBundle包。这个包不包括在Symfony标准分布,但你可以选择安装它。ob娱乐下载
看到JMSSecurityExtraBundle文欧宝官网下载app档为更多的细节。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。