Преглед изворни кода

SEC-693: RoleVoter can improve performance
http://jira.springframework.org/browse/SEC-693

Luke Taylor пре 17 година
родитељ
комит
89415e3ee5
1 измењених фајлова са 4 додато и 2 уклоњено
  1. 4 2
      core/src/main/java/org/springframework/security/vote/RoleVoter.java

+ 4 - 2
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;
                     }
                 }