php - Symfony 安全性 - 获取有关拒绝访问的详细信息
问题描述
如果我有一个受 say 保护的控制器方法
is_granted('ROLE_XYZ')
,而用户没有该角色,我如何在异常中获取“ROLE_XYZ”?目前,异常消息只有“拒绝访问”。
或者,一般来说,我想知道哪个表达式失败了。
解决方案
嗯,我不确定我是否正确理解了您的问题。
但是,如果您想使用自定义消息创建自定义访问被拒绝异常,请查看此页面: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
推荐阅读
- node.js - 使用带有道具的 ReactDOMServer.renderToString
- javascript - 在 Django HTML 中访问 javascript 变量
- node.js - 为什么 dns.resolveMx 因“gmail.com”而失败
- css - 将开槽样式优先于全局样式
- c++ - 移动构造函数“总是”比复制构造函数更有效吗?
- python-3.x - Tensorflow 模型的函数预测对利用 RNN 的回归问题有什么作用
- reactjs - 在反应中包含另一个动态列表的动态列表
- web-scraping - 如何使用 Apify 抓取动态加载列表和单个页面?
- python - AttributeError:模块“skimage”没有属性“过滤器”
- html - 强制输入以适应字体