@RolesAllowed与@PreAuthorize与@Secured

@RolesAllowed与@PreAuthorize与@Secured,第1张

@RolesAllowed与@PreAuthorize与@Secured 安全注释

所有的

@PreAuthorize
@RolesAllowed
@Secured
有注释,允许配置 方法的安全性
。它们既可以应用于单个方法,也可以应用于类级别,在后一种情况下,安全性约束将应用于类中的所有方法。

使用Spring
AOP代理
可以实现方法级的安全性

@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

属性:

@EnableGlobalMethodSecurity(securedEnabled=true)
哪些安全注释允许使用SpEL

下表显示了可与Spring Security 5一起使用的安全注释中对Spring expression Language的支持:

╔═════════════════════╦═══════════════════╗║ Security Annotation ║ Has SpEL Support? ║╠═════════════════════╬═══════════════════╣║  @PreAuthorize      ║        yes        ║╠═════════════════════╬═══════════════════╣║  @PostAuthorize     ║        yes        ║╠═════════════════════╬═══════════════════╣║  @PreFilter         ║        yes        ║╠═════════════════════╬═══════════════════╣║  @PostFilter        ║        yes        ║╠═════════════════════╬═══════════════════╣║  @Secured║        no         ║╠═════════════════════╬═══════════════════╣║  @RolesAllowed      ║        no         ║╚═════════════════════╩═══════════════════╝


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5641540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存