SEC-1532: Patch applied to 2.0.x branch

This commit is contained in:
Luke Taylor 2010-08-26 14:13:01 +01:00
parent 0acf262546
commit 9c6a5135a3
2 changed files with 14 additions and 0 deletions

6
.gitignore vendored
View File

@ -1,4 +1,10 @@
target target
.gradle
build/
*.ipr
*.iml
*.iws
intellij/
.settings .settings
.classpath .classpath
.project .project

View File

@ -60,6 +60,7 @@ public final class ProtectPointcutPostProcessor implements BeanPostProcessor {
private Map pointcutMap = new LinkedHashMap(); /** Key: string-based pointcut, value: ConfigAttributeDefinition */ private Map pointcutMap = new LinkedHashMap(); /** Key: string-based pointcut, value: ConfigAttributeDefinition */
private MapBasedMethodDefinitionSource mapBasedMethodDefinitionSource; private MapBasedMethodDefinitionSource mapBasedMethodDefinitionSource;
private PointcutParser parser; private PointcutParser parser;
private final Set processedBeans = new HashSet();
public ProtectPointcutPostProcessor(MapBasedMethodDefinitionSource mapBasedMethodDefinitionSource) { public ProtectPointcutPostProcessor(MapBasedMethodDefinitionSource mapBasedMethodDefinitionSource) {
Assert.notNull(mapBasedMethodDefinitionSource, "MapBasedMethodDefinitionSource to populate is required"); Assert.notNull(mapBasedMethodDefinitionSource, "MapBasedMethodDefinitionSource to populate is required");
@ -85,6 +86,11 @@ public final class ProtectPointcutPostProcessor implements BeanPostProcessor {
} }
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (processedBeans.contains(beanName)) {
// We already have the metadata for this bean
return bean;
}
// Obtain methods for the present bean // Obtain methods for the present bean
Method[] methods; Method[] methods;
try { try {
@ -110,6 +116,8 @@ public final class ProtectPointcutPostProcessor implements BeanPostProcessor {
} }
} }
processedBeans.add(beanName);
return bean; return bean;
} }