You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2021/01/22 18:05:14 UTC
[lucene-solr] branch branch_8x updated: Revert "SOLR-15073: Fix
ClassCastException in SystemInfoHandler.getSecurityInfo (#2210)"
This is an automated email from the ASF dual-hosted git repository.
cpoerschke pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new f78e23b Revert "SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo (#2210)"
f78e23b is described below
commit f78e23b4b82d597f228be0c02ffae59ca48079ac
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Fri Jan 22 17:59:53 2021 +0000
Revert "SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo (#2210)"
This reverts commit ec4917c45eaf7dccdcc98fba08484eb24e1ff5f2.
Resolved Conflicts:
solr/CHANGES.txt
---
solr/CHANGES.txt | 2 -
.../solr/handler/admin/SystemInfoHandler.java | 10 +--
.../solr/handler/admin/SystemInfoHandlerTest.java | 83 ----------------------
3 files changed, 1 insertion(+), 94 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 60ba68c..c4c48e5 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -170,8 +170,6 @@ Bug Fixes
* SOLR-15070: Suggester requests made with SolrJ can now use XMLResponseParser (Jason Gerlowski)
-* SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo. (Nikolay Ivanov, Christine Poerschke)
-
* SOLR-15071: Fix ArrayIndexOutOfBoundsException in contrib/ltr SolrFeatureScorer.
(Florin Babes, Ovidiu Mihalcea, David Smiley, Christine Poerschke)
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
index 1c6f236..9c4828c 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
@@ -321,14 +321,6 @@ public class SystemInfoHandler extends RequestHandlerBase
*/
public SimpleOrderedMap<Object> getSecurityInfo(SolrQueryRequest req)
{
- return getSecurityInfo(cc, req);
- }
-
- /**
- * Get Security Info
- */
- public static SimpleOrderedMap<Object> getSecurityInfo(CoreContainer cc, SolrQueryRequest req)
- {
SimpleOrderedMap<Object> info = new SimpleOrderedMap<>();
if (cc != null) {
@@ -349,7 +341,7 @@ public class SystemInfoHandler extends RequestHandlerBase
// Mapped roles for this principal
@SuppressWarnings("resource")
AuthorizationPlugin auth = cc==null? null: cc.getAuthorizationPlugin();
- if (auth instanceof RuleBasedAuthorizationPluginBase) {
+ if (auth != null) {
RuleBasedAuthorizationPluginBase rbap = (RuleBasedAuthorizationPluginBase) auth;
Set<String> roles = rbap.getUserRoles(req.getUserPrincipal());
info.add("roles", roles);
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/SystemInfoHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/SystemInfoHandlerTest.java
index 035e1c2..f012699 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/SystemInfoHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/SystemInfoHandlerTest.java
@@ -18,27 +18,12 @@ package org.apache.solr.handler.admin;
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
-import java.security.Principal;
import java.util.Arrays;
-import java.util.Collections;
import com.codahale.metrics.Gauge;
import org.apache.solr.SolrTestCase;
-import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.util.SimpleOrderedMap;
-import org.apache.solr.core.CoreContainer;
-import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.request.SolrQueryRequestBase;
-import org.apache.solr.security.AuthenticationPlugin;
-import org.apache.solr.security.AuthorizationPlugin;
-import org.apache.solr.security.JWTPrincipal;
-import org.apache.solr.security.MockAuthenticationPlugin;
-import org.apache.solr.security.MockAuthorizationPlugin;
-import org.apache.solr.security.RuleBasedAuthorizationPlugin;
-import org.apache.solr.security.RuleBasedAuthorizationPluginBase;
import org.apache.solr.util.stats.MetricUtils;
-import org.mockito.ArgumentMatchers;
-import org.mockito.Mockito;
public class SystemInfoHandlerTest extends SolrTestCase {
@@ -65,72 +50,4 @@ public class SystemInfoHandlerTest extends SolrTestCase {
}
}
- private static final String userName = "foobar";
-
- public void testGetSecurityInfoAuthorizationPlugin() throws Exception {
- final AuthorizationPlugin authorizationPlugin = new MockAuthorizationPlugin();
- doTestGetSecurityInfo(authorizationPlugin);
- }
-
- public void testGetSecurityInfoRuleBasedAuthorizationPlugin() throws Exception {
- SolrTestCaseJ4.assumeWorkingMockito();
- final RuleBasedAuthorizationPluginBase ruleBasedAuthorizationPlugin = Mockito.mock(RuleBasedAuthorizationPlugin.class);
- Mockito.doReturn(Collections.EMPTY_SET).when(ruleBasedAuthorizationPlugin).getUserRoles(ArgumentMatchers.any(Principal.class));
- doTestGetSecurityInfo(ruleBasedAuthorizationPlugin);
- }
-
- private static void doTestGetSecurityInfo(AuthorizationPlugin authorizationPlugin) throws Exception {
- final AuthenticationPlugin authenticationPlugin = new MockAuthenticationPlugin() {
- @Override
- public String getName() {
- return "mock authentication plugin name";
- }
- };
- doTestGetSecurityInfo(null, null);
- doTestGetSecurityInfo(authenticationPlugin, null);
- doTestGetSecurityInfo(null, authorizationPlugin);
- doTestGetSecurityInfo(authenticationPlugin, authorizationPlugin);
- }
-
- private static void doTestGetSecurityInfo(AuthenticationPlugin authenticationPlugin, AuthorizationPlugin authorizationPlugin) throws Exception {
-
- SolrTestCaseJ4.assumeWorkingMockito();
-
- final CoreContainer cc = Mockito.mock(CoreContainer.class);
- {
- Mockito.doReturn(authenticationPlugin).when(cc).getAuthenticationPlugin();
- Mockito.doReturn(authorizationPlugin).when(cc).getAuthorizationPlugin();
- }
-
- final SolrQueryRequest req = Mockito.mock(SolrQueryRequestBase.class);
- {
- final Principal principal = Mockito.mock(JWTPrincipal.class);
- Mockito.doReturn(userName).when(principal).getName();
- Mockito.doReturn(principal).when(req).getUserPrincipal();
- }
-
- final SimpleOrderedMap<Object> si = SystemInfoHandler.getSecurityInfo(cc, req);
-
- if (authenticationPlugin != null) {
- assertEquals(authenticationPlugin.getName(), si.remove("authenticationPlugin"));
- } else {
- assertNull(si.remove("authenticationPlugin"));
- }
-
- if (authorizationPlugin != null) {
- assertEquals(authorizationPlugin.getClass().getName(), si.remove("authorizationPlugin"));
- if (authorizationPlugin instanceof RuleBasedAuthorizationPluginBase) {
- assertNotNull(si.remove("roles"));
- } else {
- assertNull(si.remove("roles"));
- }
- } else {
- assertNull(si.remove("authorizationPlugin"));
- }
-
- assertEquals(userName, si.remove("username"));
-
- assertEquals("Unexpected additional info: " + si, 0, si.size());
- }
-
}