@Security & @IsGranted
编辑该页面@Security & @IsGranted
使用
的@Security
和@IsGranted
注释限制访问控制器:
- 注释
- 属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
使用Sensio赞助\包\FrameworkExtraBundle\配置\安全;使用Sensio赞助\包\FrameworkExtraBundle\配置\IsGranted;类为PostController扩展控制器{/ * * *@IsGranted(“ROLE_ADMIN”) * *或使用@Security更大的灵活性:* *@Security(“is_granted (ROLE_ADMIN)和is_granted (ROLE_FRIENDLY_USER)”) * /公共函数指数(){/ /……}}
1 2 3 4 5 6 7 8 9 10 11 12 13
使用Sensio赞助\包\FrameworkExtraBundle\配置\安全;使用Sensio赞助\包\FrameworkExtraBundle\配置\IsGranted;类为PostController扩展控制器{# (IsGranted (ROLE_ADMIN)]/ * *或使用安全属性* /#【安全(“is_granted (ROLE_ADMIN)和is_granted (ROLE_FRIENDLY_USER)))公共函数指数(){/ /……}}
@IsGranted
的@IsGranted ()
注释是最简单的方法来限制访问。用它来限制的角色,或使用自定义选民来限制访问基于变量传递给控制器:
- 注释
- 属性
1 2 3 4 5 6 7 8 9
/ * * *@Route(“/文章/ {id}”) * *@IsGranted(“ROLE_ADMIN”) *@IsGranted(“POST_SHOW”,主题=“post”) * /公共函数显示(文章美元帖子){}
1 2 3 4 5 6
#(路线(/文章/ {id}))# (IsGranted (ROLE_ADMIN)]#【IsGranted (POST_SHOW,主题:“文章”))公共函数显示(文章美元帖子){}
每一个IsGranted ()
授权访问用户必须访问控制器。
提示
的@IsGranted (“POST_SHOW”,主题=“post”)
是使用一个自定义安全选民的一个例子。更多细节,请参阅安全选民页面。
您还可以控制消息和状态码:
- 注释
- 属性
1 2 3 4 5 6 7 8 9 10 11 12
/ * * *将抛出一个普通AccessDeniedException: * *@IsGranted(“ROLE_ADMIN”,消息= "不访问!出去!”)* *将抛出一个textbox 404状态代码:* *@IsGranted(“ROLE_ADMIN”, statusCode = 404,消息=“后没有找到”)* /公共函数显示(文章美元帖子){}
1 2 3 4 5 6 7
/ * *将抛出一个正常AccessDeniedException * /# [IsGranted ROLE_ADMIN的消息:“没有访问!出去!”)/ * *将抛出一个textbox 404状态码* /statusCode # [IsGranted (“ROLE_ADMIN”: 404年,信息:“后没有找到”))公共函数显示(文章美元帖子){}
@Security
的@Security
注释更灵活@IsGranted
:它允许你通过表达式可以包含自定义逻辑:
- 注释
- 属性
1 2 3 4 5 6 7
/ * * *@Security(“is_granted (ROLE_ADMIN)和is_granted (POST_SHOW, post)”) * /公共函数显示(文章美元帖子){/ /……}
1 2 3 4 5
#【安全(“is_granted (ROLE_ADMIN)和is_granted (POST_SHOW, post)))公共函数显示(文章美元帖子){/ /……}
表达式可以使用所有的功能,您可以使用access_control
部分的安全包配置,添加的is_granted ()
函数。
表达式可以访问以下变量:
令牌
:当前的安全令牌;用户
:当前用户对象;请求
:请求的实例;角色
:用户角色;- 和所有请求属性。
你可以把一个ob娱乐下载
例外,而不是ob娱乐下载
使用statusCode
选择:
- 注释
- 属性
1 2 3 4 5 6
/ * * *@Security(“is_granted (POST_SHOW, post)”statusCode = 404) * /公共函数显示(文章美元帖子){}
1 2 3 4
#【安全(“is_granted (POST_SHOW, post)”statusCode: 404)公共函数显示(文章美元帖子){}
的消息
选项允许您自定义异常信息:
- 注释
- 属性
1 2 3 4 5 6
/ * * *@Security(“is_granted (POST_SHOW, post)”statusCode = 404,消息=“资源未找到”)。* /公共函数显示(文章美元帖子){}
1 2 3 4
#【安全(“is_granted (POST_SHOW, post)”statusCode: 404年,信息资源没有找到。)):公共函数显示(文章美元帖子){}
提示
你也可以加入@IsGranted
或@Security
注释在控制器类来阻止访问所有在课堂上的行为。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。