symfony - 访问拒绝除少数之外的所有控制器。Symfony 3
问题描述
如何拒绝访问除某些控制器之外的所有控制器?我有角色:ROLE_SUPER_ADMIN、ROLE_ADMIN、ROLE_MANAGER。
如果我使用注释,那么一切都很好。index方法对manager可用,方法中的ROLE_MANAGER覆盖ROLE_ADMIN
/**
* @Security("has_role('ROLE_ADMIN')")
*/
class TestController extends Controller
{
/**
* @Security("has_role('ROLE_MANAGER')")
*/
public function index(): Response
{
return new Response('Test');
}
}
如果我拒绝除管理员之外的所有人访问,则控制器中的覆盖不起作用。我在 security.yml 中的 access_control:
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_ADMIN }
在access_control中我可以写所有的路由,但是列表太大,不方便。并且在控制器中使用注解更加方便。
我想这样做,以便在创建新控制器时,默认情况下它仅对 ROLE_ADMIN 可用。
解决方案
推荐阅读
- python - 如何在保留有效位数的同时在 Python 中将“0.00”读取为数字?
- reactjs - 从 GraphQL 查询数据后如何将数据存储为 React 状态?
- asp.net-core-2.0 - 如何禁用:授权属性自动登录用户
- html - 带布尔玛的固定柱
- java - 使用更新的 javac 编译为 Java 8 编译的 Java 源代码会更有效吗?
- r - 如何使用writeJPEG从R中嵌套数组中所有元素的平均值再现图像
- windows - 我得到“项目无法打开:访问路径被拒绝”
- java - 使用接口的客户端-服务器连接
- java - Java 11 Spring Boot java.lang.ClassNotFoundException:com.sun.xml.ws.api.server.SDDocumentSource$3
- javascript - 可以在 IF 语句中从函数声明变量吗?