不推荐使用安全注释和Symfony \ Component \ Security \ Core \ SecurityContext类

时间:2015-08-09 08:55:03

标签: symfony

根据Symfony开头,版本3.0 The Symfony\Component\Security\Core\SecurityContext将被删除。这已经在这里讨论过:Symfony 2 SecurityContext class deprecated

我的symfony报告以下错误:

  

错误:Symfony \ Component \ Security \ Core \ SecurityContext类是   自2.6版以来已弃用,将在3.0中删除。使用   Symfony的\分量\安全\核心\认证\令牌\存储\ TokenStorage   或Symfony \ Component \ Security \ Core \ Authorization \ AuthorizationChecker   代替。

我正在使用annotations来管理我在symfony中的安全角色,例如

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security; // Security annotation bundle

    /**
 * @Route("/account/list", name="Account_list")
 * @Security("has_role('ROLE_USER')")
 */

我应该如何切换到非折旧课程?

使用错误结果中列出的任何类:

  

[语义错误]方法中的注释“@Security”   AppBundle \ Controller \ AccountController :: listAction()从来没有   进口。您是否忘记为此添加“使用”声明?   注解?在   /var/www/gra.investmentopportunities.pl/src/AppBundle/Controller/   (正在从中导入   “/var/www/gra.investmentopportunities.pl/app/config/routing.yml”)。

1 个答案:

答案 0 :(得分:2)

the code看,@security.context似乎已用完v3.0.4。从那时起@security.token_storage@security.authorization_checker也被注入,如果它们存在,它们将被用来代替@security.context

从这些事实中我可以假设使用的是SensioFrameworkExtraBundle之前的v3.0.5版本。

如果sensio/framework-extra-bundle: ~3.0中有composer.json,那么您可以运行composer.phar update sensio/framework-extra-bundle,它应该更新并删除弃用警告。