小编Pat*_*oro的帖子

Symfony 5 PHP8 安全属性

我有一个页面正在尝试将注释转换为 PHP8 属性。

namespace App\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

#[IsGranted('ROLE_ADMIN')]
#[Route('/page')]
class PageController extends AbstractController
{
    #[Route('/', name: 'page')]
    public function index(): Response
    {
        return $this->render('page/index.html.twig', [
            'controller_name' => 'PageController',
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

IsGranted属性似乎不起作用,因为页面可以访问,而不是 403 错误。另一方面,当转换为注释时,如下所示,它会按预期工作。是否有我缺少的配置设置?

/**
 * @IsGranted("ROLE_ADMIN")
 */
#[Route('/page')]
class PageController extends AbstractController
{
    #[Route('/', name: 'page')]
    public function index(): Response
    {
        return $this->render('page/index.html.twig', [
            'controller_name' => 'PageController',
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

其他属性(例如#[Route]#[Entity])有效,但安全属性似乎不起作用。

php symfony symfony-security php-8 symfony5

4
推荐指数
1
解决办法
3628
查看次数

标签 统计

php ×1

php-8 ×1

symfony ×1

symfony-security ×1

symfony5 ×1