18
18
19
19
import java .lang .management .ManagementFactory ;
20
20
import java .lang .management .OperatingSystemMXBean ;
21
- import java .security .Principal ;
22
21
import java .util .Arrays ;
23
- import java .util .Collections ;
24
22
25
23
import com .codahale .metrics .Gauge ;
26
24
import org .apache .solr .SolrTestCase ;
27
- import org .apache .solr .SolrTestCaseJ4 ;
28
25
import org .apache .solr .common .util .SimpleOrderedMap ;
29
- import org .apache .solr .core .CoreContainer ;
30
- import org .apache .solr .request .SolrQueryRequest ;
31
- import org .apache .solr .request .SolrQueryRequestBase ;
32
- import org .apache .solr .security .AuthenticationPlugin ;
33
- import org .apache .solr .security .AuthorizationPlugin ;
34
- import org .apache .solr .security .JWTPrincipal ;
35
- import org .apache .solr .security .MockAuthenticationPlugin ;
36
- import org .apache .solr .security .MockAuthorizationPlugin ;
37
- import org .apache .solr .security .RuleBasedAuthorizationPlugin ;
38
- import org .apache .solr .security .RuleBasedAuthorizationPluginBase ;
39
26
import org .apache .solr .util .stats .MetricUtils ;
40
- import org .mockito .ArgumentMatchers ;
41
- import org .mockito .Mockito ;
42
27
43
28
44
29
public class SystemInfoHandlerTest extends SolrTestCase {
@@ -65,72 +50,4 @@ public void testMagickGetter() throws Exception {
65
50
}
66
51
}
67
52
68
- private static final String userName = "foobar" ;
69
-
70
- public void testGetSecurityInfoAuthorizationPlugin () throws Exception {
71
- final AuthorizationPlugin authorizationPlugin = new MockAuthorizationPlugin ();
72
- doTestGetSecurityInfo (authorizationPlugin );
73
- }
74
-
75
- public void testGetSecurityInfoRuleBasedAuthorizationPlugin () throws Exception {
76
- SolrTestCaseJ4 .assumeWorkingMockito ();
77
- final RuleBasedAuthorizationPluginBase ruleBasedAuthorizationPlugin = Mockito .mock (RuleBasedAuthorizationPlugin .class );
78
- Mockito .doReturn (Collections .EMPTY_SET ).when (ruleBasedAuthorizationPlugin ).getUserRoles (ArgumentMatchers .any (Principal .class ));
79
- doTestGetSecurityInfo (ruleBasedAuthorizationPlugin );
80
- }
81
-
82
- private static void doTestGetSecurityInfo (AuthorizationPlugin authorizationPlugin ) throws Exception {
83
- final AuthenticationPlugin authenticationPlugin = new MockAuthenticationPlugin () {
84
- @ Override
85
- public String getName () {
86
- return "mock authentication plugin name" ;
87
- }
88
- };
89
- doTestGetSecurityInfo (null , null );
90
- doTestGetSecurityInfo (authenticationPlugin , null );
91
- doTestGetSecurityInfo (null , authorizationPlugin );
92
- doTestGetSecurityInfo (authenticationPlugin , authorizationPlugin );
93
- }
94
-
95
- private static void doTestGetSecurityInfo (AuthenticationPlugin authenticationPlugin , AuthorizationPlugin authorizationPlugin ) throws Exception {
96
-
97
- SolrTestCaseJ4 .assumeWorkingMockito ();
98
-
99
- final CoreContainer cc = Mockito .mock (CoreContainer .class );
100
- {
101
- Mockito .doReturn (authenticationPlugin ).when (cc ).getAuthenticationPlugin ();
102
- Mockito .doReturn (authorizationPlugin ).when (cc ).getAuthorizationPlugin ();
103
- }
104
-
105
- final SolrQueryRequest req = Mockito .mock (SolrQueryRequestBase .class );
106
- {
107
- final Principal principal = Mockito .mock (JWTPrincipal .class );
108
- Mockito .doReturn (userName ).when (principal ).getName ();
109
- Mockito .doReturn (principal ).when (req ).getUserPrincipal ();
110
- }
111
-
112
- final SimpleOrderedMap <Object > si = SystemInfoHandler .getSecurityInfo (cc , req );
113
-
114
- if (authenticationPlugin != null ) {
115
- assertEquals (authenticationPlugin .getName (), si .remove ("authenticationPlugin" ));
116
- } else {
117
- assertNull (si .remove ("authenticationPlugin" ));
118
- }
119
-
120
- if (authorizationPlugin != null ) {
121
- assertEquals (authorizationPlugin .getClass ().getName (), si .remove ("authorizationPlugin" ));
122
- if (authorizationPlugin instanceof RuleBasedAuthorizationPluginBase ) {
123
- assertNotNull (si .remove ("roles" ));
124
- } else {
125
- assertNull (si .remove ("roles" ));
126
- }
127
- } else {
128
- assertNull (si .remove ("authorizationPlugin" ));
129
- }
130
-
131
- assertEquals (userName , si .remove ("username" ));
132
-
133
- assertEquals ("Unexpected additional info: " + si , 0 , si .size ());
134
- }
135
-
136
53
}
0 commit comments