diff --git a/core/src/main/java/org/acegisecurity/intercept/AbstractSecurityInterceptor.java b/core/src/main/java/org/acegisecurity/intercept/AbstractSecurityInterceptor.java index 3459399af2..ecb9dc6f75 100644 --- a/core/src/main/java/org/acegisecurity/intercept/AbstractSecurityInterceptor.java +++ b/core/src/main/java/org/acegisecurity/intercept/AbstractSecurityInterceptor.java @@ -194,36 +194,32 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A Iterator iter = this.obtainObjectDefinitionSource().getConfigAttributeDefinitions(); if (iter == null) { - if (logger.isWarnEnabled()) { - logger.warn( - "Could not validate configuration attributes as the MethodDefinitionSource did not return a " - + "ConfigAttributeDefinition Iterator"); - } - } else { - Set set = new HashSet(); + logger.warn("Could not validate configuration attributes as the MethodDefinitionSource did not return " + + "a ConfigAttributeDefinition Iterator"); + return; + } - while (iter.hasNext()) { - ConfigAttributeDefinition def = (ConfigAttributeDefinition) iter.next(); - Iterator attributes = def.getConfigAttributes(); + Set unsupportedAttrs = new HashSet(); - while (attributes.hasNext()) { - ConfigAttribute attr = (ConfigAttribute) attributes.next(); + while (iter.hasNext()) { + ConfigAttributeDefinition def = (ConfigAttributeDefinition) iter.next(); + Iterator attributes = def.getConfigAttributes(); - if (!this.runAsManager.supports(attr) && !this.accessDecisionManager.supports(attr) - && ((this.afterInvocationManager == null) || !this.afterInvocationManager.supports(attr))) { - set.add(attr); - } + while (attributes.hasNext()) { + ConfigAttribute attr = (ConfigAttribute) attributes.next(); + + if (!this.runAsManager.supports(attr) && !this.accessDecisionManager.supports(attr) + && ((this.afterInvocationManager == null) || !this.afterInvocationManager.supports(attr))) { + unsupportedAttrs.add(attr); } } - - if (set.size() == 0) { - if (logger.isInfoEnabled()) { - logger.info("Validated configuration attributes"); - } - } else { - throw new IllegalArgumentException("Unsupported configuration attributes: " + set.toString()); - } } + + if (unsupportedAttrs.size() != 0) { + throw new IllegalArgumentException("Unsupported configuration attributes: " + unsupportedAttrs); + } + + logger.info("Validated configuration attributes"); } } @@ -431,7 +427,7 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A * attempt is made to invoke a secure object that has no configuration attributes. * * @param rejectPublicInvocations set to true to reject invocations of secure objects that have no - * configuration attributes (by default it is true which treats undeclared secure objects as + * configuration attributes (by default it is false which treats undeclared secure objects as * "public" or unauthorized) */ public void setRejectPublicInvocations(boolean rejectPublicInvocations) {