1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.authz;
20
21 import static org.junit.Assert.assertNull;
22 import static org.junit.Assert.assertTrue;
23
24 import java.util.ArrayList;
25 import java.util.Collection;
26
27 import org.apache.shiro.authc.AuthenticationException;
28 import org.apache.shiro.authc.AuthenticationInfo;
29 import org.apache.shiro.authc.AuthenticationToken;
30 import org.apache.shiro.authz.permission.RolePermissionResolver;
31 import org.apache.shiro.realm.AuthorizingRealm;
32 import org.apache.shiro.realm.Realm;
33 import org.apache.shiro.subject.PrincipalCollection;
34 import org.junit.Test;
35
36 public class ModularRealmAuthorizerTest
37 {
38
39 @Test
40 public void testSettingOfRolePermissionResolver()
41 {
42 Collection<Realm> realms = new ArrayList<Realm>();
43
44 realms.add( new MockAuthorizingRealm() );
45 realms.add( new MockAuthorizingRealm() );
46
47
48 for ( Realm realm : realms )
49 {
50 assertNull( ((AuthorizingRealm)realm).getRolePermissionResolver() );
51 }
52
53 ModularRealmAuthorizer modRealmAuthz = new ModularRealmAuthorizer();
54 modRealmAuthz.setRealms( realms );
55
56
57 for ( Realm realm : realms )
58 {
59 assertNull( ((AuthorizingRealm)realm).getRolePermissionResolver() );
60 }
61
62
63 RolePermissionResolver rolePermissionResolver = new RolePermissionResolver()
64 {
65 public Collection<Permission> resolvePermissionsInRole( String roleString )
66 {
67 return null;
68 }
69 };
70 modRealmAuthz.setRolePermissionResolver( rolePermissionResolver );
71
72
73 for ( Realm realm : realms )
74 {
75
76 assertTrue( ((AuthorizingRealm)realm).getRolePermissionResolver() == rolePermissionResolver );
77 }
78
79
80 MockAuthorizingRealm mockRealm = new MockAuthorizingRealm();
81 realms.add( mockRealm );
82 modRealmAuthz.setRealms( realms );
83 assertTrue( ((AuthorizingRealm) mockRealm).getRolePermissionResolver() == rolePermissionResolver );
84
85
86
87
88
89
90
91
92
93
94
95 }
96
97 class MockAuthorizingRealm extends AuthorizingRealm
98 {
99
100 @Override
101 protected AuthorizationInfo doGetAuthorizationInfo( PrincipalCollection principals )
102 {
103 return null;
104 }
105
106 @Override
107 protected AuthenticationInfo doGetAuthenticationInfo( AuthenticationToken token )
108 throws AuthenticationException
109 {
110 return null;
111 }
112
113 }
114 }