From 89415e3ee5a98e69276d427beb6672ad3d2c0297 Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Wed, 5 Mar 2008 13:42:39 +0000 Subject: [PATCH] SEC-693: RoleVoter can improve performance http://jira.springframework.org/browse/SEC-693 --- .../java/org/springframework/security/vote/RoleVoter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/springframework/security/vote/RoleVoter.java b/core/src/main/java/org/springframework/security/vote/RoleVoter.java index 2ef3d99860..cb789de873 100644 --- a/core/src/main/java/org/springframework/security/vote/RoleVoter.java +++ b/core/src/main/java/org/springframework/security/vote/RoleVoter.java @@ -20,6 +20,7 @@ import java.util.Iterator; import org.springframework.security.Authentication; import org.springframework.security.ConfigAttribute; import org.springframework.security.ConfigAttributeDefinition; +import org.springframework.security.GrantedAuthority; /** * Votes if any {@link ConfigAttribute#getAttribute()} starts with a prefix @@ -101,9 +102,10 @@ public class RoleVoter implements AccessDecisionVoter { if (this.supports(attribute)) { result = ACCESS_DENIED; + GrantedAuthority[] authorities = authentication.getAuthorities(); // Attempt to find a matching granted authority - for (int i = 0; i < authentication.getAuthorities().length; i++) { - if (attribute.getAttribute().equals(authentication.getAuthorities()[i].getAuthority())) { + for (int i = 0; i < authorities.length; i++) { + if (attribute.getAttribute().equals(authorities[i].getAuthority())) { return ACCESS_GRANTED; } }