所有的
@PreAuthorize,
@RolesAllowed并
@Secured有注释,允许配置 方法的安全性
。它们既可以应用于单个方法,也可以应用于类级别,在后一种情况下,安全性约束将应用于类中的所有方法。
@PreAuthorize
@PreAuthorize
注解允许使用 Spring expression Language(SpEL)
指定对方法的访问约束。这些约束是在执行方法之前进行评估的,如果约束不满足,可能会导致方法的执行被拒绝。该
@PreAuthorize注释是Spring安全框架的一部分。
为了能够使用
@PreAuthorize,注释中的
prePostEnabled属性
@EnableGlobalMethodSecurity需要设置为
true:
@EnableGlobalMethodSecurity(prePostEnabled=true)
@RolesAllowed
@RolesAllowed
注解起源于JSR-250
Java安全标准。此注释比注释 更受限制 ,
@PreAuthorize因为它 仅支持基于角色的安全性 。
为了使用
@RolesAllowed注释,包含该注释的库必须在类路径中,因为它不是Spring Security的一部分。另外,注释的
jsr250Enabled属性
@EnableGlobalMethodSecurity需要设置为
true:
@EnableGlobalMethodSecurity(jsr250Enabled=true)
@Secured
@Secured
注解是 旧版Spring Security 2注解
,可用于配置方法安全性。它不仅支持基于角色的安全性,而且不支持使用Spring expression
Language(SpEL)指定安全性约束。建议
@PreAuthorize在新应用程序中使用该注释之上的注释。
为支持
@Secured需要在明确启用注释
@EnableGlobalMethodSecurity使用注释
securedEnabled
属性:
哪些安全注释允许使用SpEL@EnableGlobalMethodSecurity(securedEnabled=true)
下表显示了可与Spring Security 5一起使用的安全注释中对Spring expression Language的支持:
╔═════════════════════╦═══════════════════╗║ Security Annotation ║ Has SpEL Support? ║╠═════════════════════╬═══════════════════╣║ @PreAuthorize ║ yes ║╠═════════════════════╬═══════════════════╣║ @PostAuthorize ║ yes ║╠═════════════════════╬═══════════════════╣║ @PreFilter ║ yes ║╠═════════════════════╬═══════════════════╣║ @PostFilter ║ yes ║╠═════════════════════╬═══════════════════╣║ @Secured║ no ║╠═════════════════════╬═══════════════════╣║ @RolesAllowed ║ no ║╚═════════════════════╩═══════════════════╝
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)