You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by bd...@apache.org on 2016/06/29 22:06:16 UTC

[2/5] shiro git commit: SHIRO-564 lower-case wildcard string before building subparts so that the subparts list is not created twice for case-insensitive strings.

SHIRO-564 lower-case wildcard string before building subparts so that the subparts list is not created twice for case-insensitive strings.

Fixes #18


Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/dbd1d621
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/dbd1d621
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/dbd1d621

Branch: refs/heads/master
Commit: dbd1d621ed33d992a36837e502396ed1e668beb8
Parents: da4c167
Author: Matt Bishop <ma...@elasticpath.com>
Authored: Sun May 29 12:12:31 2016 -0700
Committer: Brian Demers <bd...@stormpath.com>
Committed: Wed Jun 29 14:15:50 2016 -0700

----------------------------------------------------------------------
 .../shiro/authz/permission/WildcardPermission.java  | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/shiro/blob/dbd1d621/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java b/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
index cb9d14e..54032a3 100644
--- a/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
+++ b/core/src/main/java/org/apache/shiro/authz/permission/WildcardPermission.java
@@ -154,14 +154,16 @@ public class WildcardPermission implements Permission, Serializable {
             throw new IllegalArgumentException("Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.");
         }
 
+        if (!caseSensitive) {
+            wildcardString = wildcardString.toLowerCase();
+        }
+
         List<String> parts = CollectionUtils.asList(wildcardString.split(PART_DIVIDER_TOKEN));
 
         this.parts = new ArrayList<Set<String>>();
         for (String part : parts) {
             Set<String> subparts = CollectionUtils.asSet(part.split(SUBPART_DIVIDER_TOKEN));
-            if (!caseSensitive) {
-                subparts = lowercase(subparts);
-            }
+
             if (subparts.isEmpty()) {
                 throw new IllegalArgumentException("Wildcard string cannot contain parts with only dividers. Make sure permission strings are properly formatted.");
             }
@@ -173,14 +175,6 @@ public class WildcardPermission implements Permission, Serializable {
         }
     }
 
-    private Set<String> lowercase(Set<String> subparts) {
-        Set<String> lowerCasedSubparts = new LinkedHashSet<String>(subparts.size());
-        for (String subpart : subparts) {
-            lowerCasedSubparts.add(subpart.toLowerCase());
-        }
-        return lowerCasedSubparts;
-    }
-
     /*--------------------------------------------
     |  A C C E S S O R S / M O D I F I E R S    |
     ============================================*/