标签:维护 传统 handler provider 其他 int 添加 决策 不可
41.4.1 <global-method-security>
这个元素是为Spring Security beans上的安全方法添加支持的主要手段。可以通过使用注释(在接口或类级别定义)或者通过使用AspectJ语法将一组切入点定义为子元素来保护方法。
<global-method-security> Attributes
- access-decision-manager-ref 方法安全性使用与web安全性相同的AccessDecisionManager配置,但这可以使用此属性覆盖。默认情况下,基于确认AffirmativeBased 的实现用于角色投票者RoleVoter 和授权投票者AuthenticatedVoter。
- authentication-manager-ref 应该用于方法安全性的身份验证管理器的引用。
- jsr250-annotations指定是否要使用JSR-250样式属性(例如“角色化”)。这将需要类路径上的javax.annotation.security类。将此设置为true还会将一个Jsr 250选民添加到访问决策管理器中,因此如果您使用自定义实现并希望使用这些注释,您需要确保这样做。
- metadata-source-ref 可以提供一个外部MethodSecurityMetadataSource实例,该实例将优先于其他源(如默认注释)。
- mode 该属性可以设置为“aspectj”,以指定应该使用AspectJ而不是默认的Spring AOP。安全方法必须与spring-security-aspects模块中的注释安全属性相结合。
值得注意的是,AspectJ遵循Java的规则,即接口上的注释是不可继承的。这意味着在接口上定义安全注释的方法将不会受到保护。相反,在使用AspectJ时,必须将安全性注释放在类上。
- order 允许为方法安全拦截器设置建议“顺序”。
- pre-post-annotations 指定是否应该为此应用程序上下文启用Spring Security的调用前和调用后注释(@ PreFilter,@PreAuthorize,@PostFilter,@PostAuthorize)。默认为“禁用”。
- proxy-target-class 如果为真,将使用基于类的代理,而不是基于接口的代理。
- run-as-manager-ref 对可选运行管理器实现的引用,该实现将由已配置的MethodSecurityInterceptor使用
- secured-annotations 指定是否应该为此应用程序上下文启用Spring Security的@Secured注释。默认为“disabled”。
Child Elements of <global-method-security>
41.4.2 <after-invocation-provider>
此元素可用于修饰由<global-method-security>命名空间维护的安全性拦截器使用的AfterInvocationProvider。您可以在global-method-security元素中定义零个或多个这样的元素,每个元素都有一个引用属性指向您的应用程序上下文中的一个AfterInvocationProvider bean实例。
<after-invocation-provider> Attributes
- ref 定义对实现AfterInvocationProvider的Spring bean的引用。
41.4.3 <pre-post-annotation-handling>
允许完全替换用于处理Spring Security的调用前和调用后注释的默认基于表达式的机制(@ PreFilter、@PreAuthorize、@PostFilter、@PostAuthorize)。仅在启用这些注释时适用。
Child Elements of <pre-post-annotation-handling>
41.4.4 <invocation-attribute-factory>
定义前置调用属性工厂实例,该实例用于从带注释的方法生成调用前和调用后元数据。
<invocation-attribute-factory> Attributes
41.4.5 <post-invocation-advice>
使用引用作为<pre-post-annotation-handling>元素的位置授权PostInvocationAuthorizationAdvice
建议来自定义位置授权提供程序PostInvocationAdviceProvider
。
<post-invocation-advice> Attributes
41.4.6 <pre-invocation-advice>
使用引用作为<pre-post-annotation-handling>元素的前置位置授权建议投票者PreInvocationAuthorizationAdviceVoter ,自定义前置位置授权建议投票者PreInvocationAuthorizationAdviceVoter 。
<pre-invocation-advice> Attributes
41.4.7 Securing Methods using
您可以使用<protect-pointcut>元素跨服务层中的整套方法和接口定义交叉安全约束,而不是使用@Secured注释在单个方法或类的基础上定义安全属性。您可以在名称空间介绍中找到一个示例。
<protect-pointcut> Attributes
- access 访问适用于所有匹配切入点的方法的配置属性列表,例如“角色甲,角色乙”
- expression AspectJ表达式,包括“执行”关键字。例如,“执行(int com . foo . TargetObject . CountLength(String))”(不带引号)。
41.4.8 <intercept-methods>
可以在bean定义中使用,向bean添加安全拦截器,并为bean的方法设置访问配置属性
<intercept-methods> Attributes
- access-decision-manager-ref 创建的方法安全拦截器使用的可选访问决策管理器AccessDecisionManager bean标识。
Child Elements of <intercept-methods>
41.4.9 <method-security-metadata-source>
创建MethodSecurityMetadataSource 实例
<method-security-metadata-source> Attributes
- id 一个bean标识符,用于引用上下文中其他地方的bean。
- use-expressions 允许在<intercept-url >元素的“access”属性中使用表达式,而不是传统的配置属性列表。默认为“false”。如果启用,每个属性应该包含一个布尔表达式。如果表达式计算结果为“true”,将授予访问权限。
Child Elements of <method-security-metadata-source>
41.4.10 <protect>
定义受保护的方法和应用于该方法的访问控制配置属性。我们强烈建议您不要将“保护”声明与任何提供“global-method-security”的服务混在一起。
- access 访问适用于该方法的访问配置属性列表,例如“角色A,角色B”。
41.4 Method Security方法安全性
标签:维护 传统 handler provider 其他 int 添加 决策 不可
原文地址:https://www.cnblogs.com/jrkl/p/13512630.html