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:15 UTC
[1/5] shiro git commit: SHIRO-566 Use Collections wrappers to save
memory and cpu.
Repository: shiro
Updated Branches:
refs/heads/master cc77f33d1 -> 01b35626a
SHIRO-566 Use Collections wrappers to save memory and cpu.
Fixes #19
Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/da4c167b
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/da4c167b
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/da4c167b
Branch: refs/heads/master
Commit: da4c167b924af4440e033b42a3b8e691f0e5d8cd
Parents: cc77f33
Author: Matt Bishop <ma...@elasticpath.com>
Authored: Mon May 30 10:47:28 2016 -0700
Committer: Brian Demers <bd...@stormpath.com>
Committed: Wed Jun 29 14:11:44 2016 -0700
----------------------------------------------------------------------
.../java/org/apache/shiro/util/CollectionUtils.java | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/shiro/blob/da4c167b/lang/src/main/java/org/apache/shiro/util/CollectionUtils.java
----------------------------------------------------------------------
diff --git a/lang/src/main/java/org/apache/shiro/util/CollectionUtils.java b/lang/src/main/java/org/apache/shiro/util/CollectionUtils.java
index 4b9c8e4..67e9901 100644
--- a/lang/src/main/java/org/apache/shiro/util/CollectionUtils.java
+++ b/lang/src/main/java/org/apache/shiro/util/CollectionUtils.java
@@ -18,7 +18,7 @@
*/
package org.apache.shiro.util;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashSet;
@@ -39,6 +39,11 @@ public class CollectionUtils {
if (elements == null || elements.length == 0) {
return Collections.emptySet();
}
+
+ if (elements.length == 1) {
+ return Collections.singleton(elements[0]);
+ }
+
LinkedHashSet<E> set = new LinkedHashSet<E>(elements.length * 4 / 3 + 1);
Collections.addAll(set, elements);
return set;
@@ -97,11 +102,9 @@ public class CollectionUtils {
if (elements == null || elements.length == 0) {
return Collections.emptyList();
}
- // Avoid integer overflow when a large array is passed in
- int capacity = computeListCapacity(elements.length);
- ArrayList<E> list = new ArrayList<E>(capacity);
- Collections.addAll(list, elements);
- return list;
+
+ // Integer overflow does not occur when a large array is passed in because the list array already exists
+ return Arrays.asList(elements);
}
/*public static <E> Deque<E> asDeque(E... elements) {
[5/5] shiro git commit: Fix the calculation for the hash iterations
Posted by bd...@apache.org.
Fix the calculation for the hash iterations
We really need to subtract 1 here, not DEFAULT_ITERATIONS (which could
change, breaking the calculation then)
Fixes #14, SHIRO-568
Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/01b35626
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/01b35626
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/01b35626
Branch: refs/heads/master
Commit: 01b35626ac7cf9bb3c4f584c2c649ef5c190ac4b
Parents: 50393a2
Author: Andreas Kohn <an...@gmail.com>
Authored: Thu Apr 21 10:26:44 2016 +0200
Committer: Brian Demers <bd...@stormpath.com>
Committed: Wed Jun 29 14:22:32 2016 -0700
----------------------------------------------------------------------
.../src/main/java/org/apache/shiro/crypto/hash/SimpleHash.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/shiro/blob/01b35626/crypto/hash/src/main/java/org/apache/shiro/crypto/hash/SimpleHash.java
----------------------------------------------------------------------
diff --git a/crypto/hash/src/main/java/org/apache/shiro/crypto/hash/SimpleHash.java b/crypto/hash/src/main/java/org/apache/shiro/crypto/hash/SimpleHash.java
index 7ee3c40..b3c8a33 100644
--- a/crypto/hash/src/main/java/org/apache/shiro/crypto/hash/SimpleHash.java
+++ b/crypto/hash/src/main/java/org/apache/shiro/crypto/hash/SimpleHash.java
@@ -346,7 +346,7 @@ public class SimpleHash extends AbstractHash {
digest.update(salt);
}
byte[] hashed = digest.digest(bytes);
- int iterations = hashIterations - DEFAULT_ITERATIONS; //already hashed once above
+ int iterations = hashIterations - 1; //already hashed once above
//iterate remaining number:
for (int i = 0; i < iterations; i++) {
digest.reset();
[3/5] shiro git commit: SHIRO-300 Add protected setParts(list) method
to WildcardPermission so subclasses can create their own parts/subparts list.
Posted by bd...@apache.org.
SHIRO-300 Add protected setParts(list) method to WildcardPermission so subclasses can create their own parts/subparts list.
Fixes #17
Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/a862620b
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/a862620b
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/a862620b
Branch: refs/heads/master
Commit: a862620bec0618d763ebe42b22bef8660b34dfdf
Parents: dbd1d62
Author: Matt Bishop <ma...@elasticpath.com>
Authored: Sun May 29 12:06:01 2016 -0700
Committer: Brian Demers <bd...@stormpath.com>
Committed: Wed Jun 29 14:16:40 2016 -0700
----------------------------------------------------------------------
.../apache/shiro/authz/permission/WildcardPermission.java | 9 +++++++++
1 file changed, 9 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/shiro/blob/a862620b/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 54032a3..4149771 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
@@ -182,6 +182,15 @@ public class WildcardPermission implements Permission, Serializable {
return this.parts;
}
+ /**
+ * Sets the pre-split String parts of this <code>WildcardPermission</code>.
+ * @since 1.3.0
+ * @param parts pre-split String parts.
+ */
+ protected void setParts(List<Set<String>> parts) {
+ this.parts = parts;
+ }
+
/*--------------------------------------------
| M E T H O D S |
============================================*/
[4/5] shiro git commit: SHIRO-435: Fix the double SecurityManager
singleton. Also prevent the same issue on Environment. Update test cases of
ShiroWebModule accordingly. (Patch from
https://issues.apache.org/jira/browse/SHIRO-435)
Posted by bd...@apache.org.
SHIRO-435: Fix the double SecurityManager singleton. Also prevent the same issue on Environment. Update test cases of ShiroWebModule accordingly. (Patch from https://issues.apache.org/jira/browse/SHIRO-435)
Fixes #16
Project: http://git-wip-us.apache.org/repos/asf/shiro/repo
Commit: http://git-wip-us.apache.org/repos/asf/shiro/commit/50393a2d
Tree: http://git-wip-us.apache.org/repos/asf/shiro/tree/50393a2d
Diff: http://git-wip-us.apache.org/repos/asf/shiro/diff/50393a2d
Branch: refs/heads/master
Commit: 50393a2d1154ad73dccab6aa6078232e7803e169
Parents: a862620
Author: Johannes Schnatterer <jo...@triology.de>
Authored: Wed May 25 14:29:41 2016 +0200
Committer: Brian Demers <bd...@stormpath.com>
Committed: Wed Jun 29 14:16:57 2016 -0700
----------------------------------------------------------------------
.../java/org/apache/shiro/guice/web/ShiroWebModule.java | 4 ++--
.../java/org/apache/shiro/guice/web/ShiroWebModuleTest.java | 9 ++++++---
2 files changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/shiro/blob/50393a2d/support/guice/src/main/java/org/apache/shiro/guice/web/ShiroWebModule.java
----------------------------------------------------------------------
diff --git a/support/guice/src/main/java/org/apache/shiro/guice/web/ShiroWebModule.java b/support/guice/src/main/java/org/apache/shiro/guice/web/ShiroWebModule.java
index 316958e..45bc916 100644
--- a/support/guice/src/main/java/org/apache/shiro/guice/web/ShiroWebModule.java
+++ b/support/guice/src/main/java/org/apache/shiro/guice/web/ShiroWebModule.java
@@ -179,7 +179,7 @@ public abstract class ShiroWebModule extends ShiroModule {
@SuppressWarnings({"unchecked"})
@Override
protected final void bindSecurityManager(AnnotatedBindingBuilder<? super SecurityManager> bind) {
- bindWebSecurityManager(bind);
+ bind.to(WebSecurityManager.class); // SHIRO-435
}
/**
@@ -211,7 +211,7 @@ public abstract class ShiroWebModule extends ShiroModule {
@Override
protected final void bindEnvironment(AnnotatedBindingBuilder<Environment> bind) {
- bindWebEnvironment(bind);
+ bind.to(WebEnvironment.class); // SHIRO-435
}
protected void bindWebEnvironment(AnnotatedBindingBuilder<? super WebEnvironment> bind) {
http://git-wip-us.apache.org/repos/asf/shiro/blob/50393a2d/support/guice/src/test/java/org/apache/shiro/guice/web/ShiroWebModuleTest.java
----------------------------------------------------------------------
diff --git a/support/guice/src/test/java/org/apache/shiro/guice/web/ShiroWebModuleTest.java b/support/guice/src/test/java/org/apache/shiro/guice/web/ShiroWebModuleTest.java
index 908f322..a3a3f76 100644
--- a/support/guice/src/test/java/org/apache/shiro/guice/web/ShiroWebModuleTest.java
+++ b/support/guice/src/test/java/org/apache/shiro/guice/web/ShiroWebModuleTest.java
@@ -100,7 +100,7 @@ public class ShiroWebModuleTest {
@Override
protected void bindWebSecurityManager(AnnotatedBindingBuilder<? super WebSecurityManager> bind) {
- bind.to(MyDefaultWebSecurityManager.class);
+ bind.to(MyDefaultWebSecurityManager.class).asEagerSingleton();
}
});
SecurityManager securityManager = injector.getInstance(SecurityManager.class);
@@ -109,7 +109,8 @@ public class ShiroWebModuleTest {
WebSecurityManager webSecurityManager = injector.getInstance(WebSecurityManager.class);
assertNotNull(webSecurityManager);
assertTrue(webSecurityManager instanceof MyDefaultWebSecurityManager);
-
+ // SHIRO-435: Check both keys SecurityManager and WebSecurityManager are bound to the same instance
+ assertTrue( securityManager == webSecurityManager );
}
@Test
@@ -132,7 +133,7 @@ public class ShiroWebModuleTest {
@Override
protected void bindWebEnvironment(AnnotatedBindingBuilder<? super WebEnvironment> bind) {
- bind.to(MyWebEnvironment.class);
+ bind.to(MyWebEnvironment.class).asEagerSingleton();
}
});
Environment environment = injector.getInstance(Environment.class);
@@ -141,6 +142,8 @@ public class ShiroWebModuleTest {
WebEnvironment webEnvironment = injector.getInstance(WebEnvironment.class);
assertNotNull(webEnvironment);
assertTrue(webEnvironment instanceof MyWebEnvironment);
+ // SHIRO-435: Check both keys Environment and WebEnvironment are bound to the same instance
+ assertTrue( environment == webEnvironment );
}
public static class MyDefaultWebSecurityManager extends DefaultWebSecurityManager {
[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.
Posted by bd...@apache.org.
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 |
============================================*/