php - 在 symfony 访问控制中允许控制器操作
问题描述
我在 Symfony 中有一个 API 项目。身份验证由 JWT 令牌保护。我想在控制器中允许 2 个操作,无需登录用户即可使用。
- /point/{param}/elmeter
- /point/{param}/测量
我试图允许security.yaml
访问控制没有成功。
access_control:
- { path: ^/api/point/.*/(elmeter|measurement)$, role: IS_AUTHENTICATED_ANONYMOUSLY }
/**
* @param string $sign
* @param Request $request
*
* @Route("/point/{sign}/elmeter", methods={"POST"}
*/
public function postPointElmeterAction(string $sign, Request $request)
{
...
}
/**
* @param string $sign
* @param Request $request
*
* @Route("/point/{sign}/measurement", methods={"POST"}, name="api_point_measurement")
*/
public function postPointMeasurementAction(string $sign, Request $request)
{
...
}
谢谢你的每一个答案。
解决方案
您需要在防火墙部分中指定此路由,security.yaml
如下所示:
security:
...
...
firewalls
point:
pattern: ^/api/point/.*/(elmeter|measurement)$
stateless: true
anonymous: true
access_control:
- { path: ^/api/point/.*/(elmeter|measurement)$, role: IS_AUTHENTICATED_ANONYMOUSLY }
推荐阅读
- magento - 为特定属性组中的属性添加新的输入文件 - Magento 2.3
- python - opencv扭曲图像中2点的欧几里得距离
- vb.net - 我如何使用 Windows 应用程序 vb.net 存储和连接访问数据库/文件
- excel - 使用日期选择器将数据从 Excel 工作表过滤到用户表单中的列表框
- csv - 当csv文件有cr和lf时如何加载到hive
- .net-core - 无法通过 dotnet build 命令编译模板 C++/CLI (.NET Core 3.1) 项目
- python - 透明度变成橄榄绿
- nginx - SignalR SSL 信任问题与 Android 的反向代理(Nginx)
- android - 为 Xamarin 绑定 .Jar 库
- php - 当我尝试创建索引时,Docker + elasticsearch 总是返回“在集群中找不到活动节点”