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