php - Symfony isGranted("ROLE_ADMIN") 无法正常工作
问题描述
我有一个这样的security.yaml:
api_documentary:
pattern: ^/api/v1/documentary
fos_oauth: true
stateless: false
methods: [POST, PUT, DELETE]
- { path: ^/api/v1/documentary, roles: IS_AUTHENTICATED_ANONYMOUSLY }
我希望防火墙在以下路由上打开(通过访问令牌访问)^/api/v1/documentary POST, PUT, DELETE
我希望防火墙在路由上关闭:GET
和GET ALL
如果我从上面排除 GET methods: []
,我可以公开访问它们,但是会发生一些奇怪的事情:
isGranted 不起作用,即使用户具有以下角色 [ROLE_USER, ROLE_ADMIN] 它似乎没有注意到。
if (!$this->isGranted('ROLE_ADMIN')) {
return new JsonResponse("Not granted");
}
如果我添加到api_documentary:
methods: [GET, POST, PUT, DELETE]
isGranted
有效,但该GET
方法将不再公开。
解决方案
推荐阅读
- ionic4 - 离子4刷新后相同的页面而不去登录页面
- javascript - 由于反向代理,无法在生产中获取客户端的 IP
- node.js - 不知道主键的 DynamoDB 查询
- r - 添加考虑颜色、形状和线型的组合图例,同时保留原始图例
- python - Python ML 线性回归对象不可调用
- python - 获取列的名称并在数据框 pandas 中从中创建数据
- asp.net - asp fileupload 控件停止使用 android 8
- windows - PowerShell 脚本尝试复制不存在的文件夹
- c++ - 无法在 cpp 中按值返回向量
- postgresql - 对 10M 行表中 180k 行的 UPDATE 查询出乎意料地慢