在 symfony 访问控制中允许控制器操作
Allow controller action in symfony access cotrol
我在 Symfony 中有一个 API 项目。身份验证由 JWT 令牌保护。我想在控制器中允许 2 个操作,无需登录用户即可使用。
- /点/{参数}/elmeter
- /点/{参数}/测量值
我尝试允许 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 }
我在 Symfony 中有一个 API 项目。身份验证由 JWT 令牌保护。我想在控制器中允许 2 个操作,无需登录用户即可使用。
- /点/{参数}/elmeter
- /点/{参数}/测量值
我尝试允许 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 }