sam*_*ers 4 aop spring spring-security spring-aop
我听说 AOP 可用于分离安全、事务和日志记录等跨领域方面。
所以,我想了解 Spring Security 是否在内部使用 AOP?
是的,Spring Security 在内部使用 AOP。例如,它用于全局方法安全。全局方法安全用于对某些方法应用安全检查(例如,在服务层)。
您可以在GlobalMethodSecurityBeanDefinitionParser与全局方法安全性相关的 Spring Security 基础结构的一部分中找到以下代码:
if (useAspectJ) {
BeanDefinitionBuilder aspect =
BeanDefinitionBuilder.rootBeanDefinition("org.springframework.security.access.intercept.aspectj.aspect.AnnotationSecurityAspect");
aspect.setFactoryMethod("aspectOf");
aspect.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
aspect.addPropertyValue("securityInterceptor", interceptor);
String id = pc.getReaderContext().registerWithGeneratedName(aspect.getBeanDefinition());
pc.registerBeanComponent(new BeanComponentDefinition(aspect.getBeanDefinition(), id));
} else {
registerAdvisor(pc, interceptor, metadataSource, source, element.getAttribute(ATT_ADVICE_ORDER));
AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(pc, element);
}
Run Code Online (Sandbox Code Playgroud)
它几乎在每一行中都提到了 AOP。
可以找到有关全局方法安全性的更多信息,例如,这里https://docs.spring.io/spring-security/site/docs/3.0.x/reference/ns-config.html和这里https://spring .io/blog/2013/07/04/spring-security-java-config-preview-method-security/
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |