|
对于最新的稳定版本,请使用 Spring Security 6.5.3! |
方法安全性
<方法安全>
此元素是添加对 Spring Security Bean 上保护方法的支持的主要方法。可以通过使用注释(在接口或类级别定义)或定义一组切入点来保护方法。
<method-security> 属性
-
预后启用为此应用程序上下文启用 Spring Security 的调用前和后调用注释(@PreFilter、@PreAuthorize、@PostFilter、@PostAuthorize)。默认为“true”。
-
已启用安全为此应用程序上下文启用 Spring Security 的@Secured注释。默认为“false”。
-
已启用 JSR250为此应用程序上下文启用 JSR-250 授权注释(@RolesAllowed、@PermitAll、@DenyAll)。默认为“false”。
-
模式 如果设置为“aspectj”,则使用 AspectJ 拦截方法调用。
-
代理目标类如果为 true,则将使用基于类的代理而不是基于接口的代理。默认为“false”。
-
安全上下文-持有者策略-引用指定检索 SecurityContext 时要使用的 SecurityContextHolderStrategy。默认为 SecurityContextHolder.getContextHolderStrategy() 返回的值。
-
观察注册表-ref对
ObservationRegistry用于FilterChain和相关组件
<全局方法安全>
此元素是添加对 Spring Security Bean 上保护方法的支持的主要方法。可以通过使用注释(在接口或类级别定义)或使用 AspectJ 语法将一组切入点定义为子元素来保护方法。
<global-method-security> 属性
-
访问决策管理器-ref方法安全性使用相同的
AccessDecisionManager配置为 Web 安全,但可以使用此属性覆盖。默认情况下,AffirmativeBased 实现用于 RoleVoter 和 AuthenticatedVoter。
-
身份验证经理-ref对
AuthenticationManager这应该用于方法安全性。
-
jsr250-注释指定是否使用 JSR-250 样式属性(例如“RolesAllowed”)。这将需要类路径上的 javax.annotation.security 类。将此设置为 true 还会添加一个
Jsr250Voter到AccessDecisionManager,因此,如果您使用的是自定义实现并想要使用这些注释,则需要确保执行此作。
-
元数据源-引用一个外部
MethodSecurityMetadataSource实例将优先于其他源(例如默认注释)。
-
模式 可以将此属性设置为“aspectj”,以指定应使用 AspectJ 而不是默认的 Spring AOP。安全方法必须使用
AnnotationSecurityAspect从spring-security-aspects模块。
需要注意的是,AspectJ遵循Java的规则,即接口上的注释不会被继承。 这意味着在接口上定义 Security 注释的方法将不会受到保护。 相反,在使用 AspectJ 时,您必须将 Security 注释放在类上。
-
次序允许为方法安全拦截器设置通知“顺序”。
-
前置后注释指定是否应为此应用程序上下文启用 Spring Security 的调用前和调用后注释(@PreFilter、@PreAuthorize、@PostFilter、@PostAuthorize)的使用。 默认为“disabled”。
-
代理目标类如果为 true,则将使用基于类的代理而不是基于接口的代理。
-
作为经理-ref 运行对可选
RunAsManager实现,该实现将由配置的MethodSecurityInterceptor
-
安全注释指定是否应为此应用程序上下文启用 Spring Security 的@Secured注释的使用。 默认为“disabled”。