You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by ka...@apache.org on 2010/05/17 22:32:29 UTC
svn commit: r945348 - in /incubator/shiro/trunk/core/src:
main/java/org/apache/shiro/authz/ModularRealmAuthorizer.java
main/java/org/apache/shiro/util/ThreadContext.java
test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
Author: kaosko
Date: Mon May 17 20:32:29 2010
New Revision: 945348
URL: http://svn.apache.org/viewvc?rev=945348&view=rev
Log:
FIXED - issue SHIRO-163: ModularRealmAuthorizer.setRealms needs to call applyRolePermissionResolverToRealms
https://issues.apache.org/jira/browse/SHIRO-163
- applied attached path
Modified:
incubator/shiro/trunk/core/src/main/java/org/apache/shiro/authz/ModularRealmAuthorizer.java
incubator/shiro/trunk/core/src/main/java/org/apache/shiro/util/ThreadContext.java
incubator/shiro/trunk/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
Modified: incubator/shiro/trunk/core/src/main/java/org/apache/shiro/authz/ModularRealmAuthorizer.java
URL: http://svn.apache.org/viewvc/incubator/shiro/trunk/core/src/main/java/org/apache/shiro/authz/ModularRealmAuthorizer.java?rev=945348&r1=945347&r2=945348&view=diff
==============================================================================
--- incubator/shiro/trunk/core/src/main/java/org/apache/shiro/authz/ModularRealmAuthorizer.java (original)
+++ incubator/shiro/trunk/core/src/main/java/org/apache/shiro/authz/ModularRealmAuthorizer.java Mon May 17 20:32:29 2010
@@ -89,6 +89,7 @@ public class ModularRealmAuthorizer impl
public void setRealms(Collection<Realm> realms) {
this.realms = realms;
applyPermissionResolverToRealms();
+ applyRolePermissionResolverToRealms();
}
/**
Modified: incubator/shiro/trunk/core/src/main/java/org/apache/shiro/util/ThreadContext.java
URL: http://svn.apache.org/viewvc/incubator/shiro/trunk/core/src/main/java/org/apache/shiro/util/ThreadContext.java?rev=945348&r1=945347&r2=945348&view=diff
==============================================================================
--- incubator/shiro/trunk/core/src/main/java/org/apache/shiro/util/ThreadContext.java (original)
+++ incubator/shiro/trunk/core/src/main/java/org/apache/shiro/util/ThreadContext.java Mon May 17 20:32:29 2010
@@ -40,6 +40,7 @@ import java.util.Map;
* execution, respectively (i.e. individually explicitly or all via the <tt>clear</tt> method).</p>
*
* @author Les Hazlewood
+ * @author Kalle Korhonen
* @see #remove()
* @since 0.1
*/
Modified: incubator/shiro/trunk/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java
URL: http://svn.apache.org/viewvc/incubator/shiro/trunk/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java?rev=945348&r1=945347&r2=945348&view=diff
==============================================================================
--- incubator/shiro/trunk/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java (original)
+++ incubator/shiro/trunk/core/src/test/java/org/apache/shiro/authz/ModularRealmAuthorizerTest.java Mon May 17 20:32:29 2010
@@ -18,6 +18,8 @@
*/
package org.apache.shiro.authz;
+import static org.junit.Assert.assertTrue;
+
import java.util.ArrayList;
import java.util.Collection;
@@ -75,13 +77,22 @@ public class ModularRealmAuthorizerTest
Assert.assertTrue( ((AuthorizingRealm)realm).getRolePermissionResolver() == rolePermissionResolver );
}
+ // add a new realm and make sure the RolePermissionResolver is set
+ MockAuthorizingRealm mockRealm = new MockAuthorizingRealm();
+ realms.add( mockRealm );
+ modRealmAuthz.setRealms( realms );
+ assertTrue( ((AuthorizingRealm) mockRealm).getRolePermissionResolver() == rolePermissionResolver );
+
+
// TODO: no way to unset them, not sure if that is a valid use case, but this is conistent with the PermissionResolver logic
// // now just to be sure, unset them
// modRealmAuthz.setRolePermissionResolver( null );
// for ( Realm realm : realms )
// {
// Assert.assertNull( ((AuthorizingRealm)realm).getRolePermissionResolver() );
-// }
+// }
+
+
}
class MockAuthorizingRealm extends AuthorizingRealm