Symfony安全-获取有关拒绝访问的详细信息

时间:2019-01-24 11:06:14

标签: php symfony symfony-security

如果我的控制器方法受保护 is_granted('ROLE_XYZ'),并且用户没有该角色,我如何在异常情况下获得“ ROLE_XYZ”的所有权?当前,该异常消息仅具有“访问被拒绝”。

或者,总的来说,我想知道哪个表达式失败。

1 个答案:

答案 0 :(得分:1)

哼哼,我不确定我是否正确理解了你的问题。

但是,如果您想创建带有自定义消息的自定义访问拒绝异常,请查看以下页面:https://symfony.com/doc/current/security/access_denied_handler.html

希望有帮助

编辑:如果先前给定的链接断开,则要创建自定义消息,您必须:

  • 创建一个实现AccessDeniedHandlerInterface的类
class AccessDeniedHandler implements AccessDeniedHandlerInterface
    {
        public function handle(Request $request, AccessDeniedException $accessDeniedException)
        {
            // ...

            return new Response($content, 403);
        }
    }
  • 然后修改您的security.yaml以添加您的自定义类
    # config/packages/security.yaml
    firewalls:
        # ...

        main:
            # ...
            access_denied_handler: App\Security\AccessDeniedHandler