Skip to content

Commit 64d445b

Browse files
committed
Revert "SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo (#2210)"
This reverts commit fb88b02. Resolved Conflicts: solr/CHANGES.txt
1 parent 4bc5d51 commit 64d445b

File tree

3 files changed

+1
-94
lines changed

3 files changed

+1
-94
lines changed

solr/CHANGES.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,6 @@ Bug Fixes
364364

365365
* SOLR-15070: Suggester requests made with SolrJ can now use XMLResponseParser (Jason Gerlowski)
366366

367-
* SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo. (Nikolay Ivanov, Christine Poerschke)
368-
369367
* SOLR-15071: Fix ArrayIndexOutOfBoundsException in contrib/ltr SolrFeatureScorer.
370368
(Florin Babes, Ovidiu Mihalcea, David Smiley, Christine Poerschke)
371369

solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -323,14 +323,6 @@ public static SimpleOrderedMap<Object> getJvmInfo()
323323
* Get Security Info
324324
*/
325325
public SimpleOrderedMap<Object> getSecurityInfo(SolrQueryRequest req)
326-
{
327-
return getSecurityInfo(cc, req);
328-
}
329-
330-
/**
331-
* Get Security Info
332-
*/
333-
public static SimpleOrderedMap<Object> getSecurityInfo(CoreContainer cc, SolrQueryRequest req)
334326
{
335327
SimpleOrderedMap<Object> info = new SimpleOrderedMap<>();
336328

@@ -352,7 +344,7 @@ public static SimpleOrderedMap<Object> getSecurityInfo(CoreContainer cc, SolrQue
352344
// Mapped roles for this principal
353345
@SuppressWarnings("resource")
354346
AuthorizationPlugin auth = cc==null? null: cc.getAuthorizationPlugin();
355-
if (auth instanceof RuleBasedAuthorizationPluginBase) {
347+
if (auth != null) {
356348
RuleBasedAuthorizationPluginBase rbap = (RuleBasedAuthorizationPluginBase) auth;
357349
Set<String> roles = rbap.getUserRoles(req.getUserPrincipal());
358350
info.add("roles", roles);

solr/core/src/test/org/apache/solr/handler/admin/SystemInfoHandlerTest.java

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,12 @@
1818

1919
import java.lang.management.ManagementFactory;
2020
import java.lang.management.OperatingSystemMXBean;
21-
import java.security.Principal;
2221
import java.util.Arrays;
23-
import java.util.Collections;
2422

2523
import com.codahale.metrics.Gauge;
2624
import org.apache.solr.SolrTestCase;
27-
import org.apache.solr.SolrTestCaseJ4;
2825
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;
3926
import org.apache.solr.util.stats.MetricUtils;
40-
import org.mockito.ArgumentMatchers;
41-
import org.mockito.Mockito;
4227

4328

4429
public class SystemInfoHandlerTest extends SolrTestCase {
@@ -65,72 +50,4 @@ public void testMagickGetter() throws Exception {
6550
}
6651
}
6752

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-
13653
}

0 commit comments

Comments
 (0)