我有一个错误:
“令牌存储不包含身份验证令牌。一个可能的原因可能是没有防火墙配置此URL。
这是由denyAccessUnlessGranted()
引起加入到控制器。它发生在测试环境有security: false
。有没有办法处理这样的情况下,还是应该用它做什么的环境机制?
跟踪:
0 /backend/vendor/symfony/framework-bundle/Controller/ControllerTrait.php(179): Symfony\Component\Security\Core\Authorization\AuthorizationChecker->isGranted('read', Object(App\Entity\Company))
1 /backend/vendor/symfony/framework-bundle/Controller/ControllerTrait.php(192): Symfony\Bundle\FrameworkBundle\Controller\AbstractController->isGranted('read', Object(App\Entity\Company))
2 /backend/src/Controller/CompanyController.php(125): Symfony\Bundle\FrameworkBundle\Controller\AbstractController->denyAccessUnlessGranted('read', Object(App\Entity\Company))
3 /backend/vendor/symfony/http-kernel/HttpKernel.php(150): App\Controller\CompanyController->cget(Object(Symfony\Component\HttpFoundation\Request), Object(App\Service\CompanyService))
4 /backend/vendor/symfony/http-kernel/HttpKernel.php(67): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
5 /backend/vendor/symfony/http-kernel/Kernel.php(198): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
6 /backend/public/index.php(37): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))
7 {main}"
为什么你需要使用安全的虚假的测试环境。如果你这样做,你使用denyAccessUnlessGranted()在你的应用程序,你会得到你所提到的结果。为了解决这个问题,你必须使用一个尝试捕捉巫婆给你留下2个选项,他们都不是一个好。
denyAccessUnlessGranted 2种抛出的异常类型,你需要捕捉
这是我所提到的两种选择
应用程序的安全组件是尽可能多的应用程序,因为每个其他业务功能的一部分。它应该是在每一个环境中进行活动,并配置相同。您的测试,开发或督促环境之间唯一的区别应该是在参数文件(之类的东西存储在哪里的用户)。
希望这有助于亚历Cosoi