我正在使用 API 平台开发一个项目。
我希望通过基本身份验证保护 UI 的文档,而一些路由应该是公开的。
例如:
/**
* An ordered dish.
*
* @ApiResource(
* attributes={"access_control"="is_granted('ROLE_USER')"},
* collectionOperations={
* "get"={"access_control"="is_granted('IS_AUTHENTICATED_ANONYMOUSLY')"},
* "post"={"access_control"="is_granted('ROLE_ADMIN')"}
* },
* itemOperations={
* "get"={"access_control"="is_granted('IS_AUTHENTICATED_ANONYMOUSLY')"}
* }
* )
*
* @ORM\Entity
* @ORM\Table(name="uitgekookt_dish")
*/
class Dish
当我在浏览器中查看文档时,我可以简单地访问 /api/dishes,因为 IS_AUTHENTICATED_ANONYMOUSLY。我也看到了其他可用的 get/post 方法(尽管一些 post 方法是安全的)。
但是,这些文档根本不应该公开。在 Symfony 4 中,我如何确保为 docs 和 ajax 请求分离我的安全配置?