From 2366c319a099789daa1521a2f198b26c9b42bf37 Mon Sep 17 00:00:00 2001 From: Valera V Harseko Date: Tue, 4 Aug 2026 15:05:55 +0300 Subject: [PATCH] Rename the two backend Storage classes, the confusable subentry helper, and drop a dead verifier CodeQL java/class-name-matches-super-class, java/confusing-method-name and java/unused-reference-type. The JDBC and Cassandra backends each named their storage implementation Storage, after the org.opends.server.backends.pluggable.spi.Storage they implement, so each had to spell the interface out in full in its own implements clause. They become JDBCStorage and CASStorage, matching JEStorage and PDBStorage. Both are constructed only by the configureStorage() of the Backend beside them, and the configuration definitions name that Backend rather than the storage class. SubentryManager.removeSubentry(Entry) called a helper named removeSubEntry(Map, Entry) twice, so the call sites read as if the method recursed. The helper becomes removeSubentryFrom(Map, Entry). BlindHostnameVerifier is package-private, referenced from nowhere, and accepts every hostname it is asked about. It is removed rather than left for someone to wire up. cassandra/Backend.java, which carried no license header, receives one. --- .../admin/ads/util/BlindHostnameVerifier.java | 30 ------------------- .../server/backends/cassandra/Backend.java | 19 ++++++++++-- .../{Storage.java => CASStorage.java} | 8 ++--- .../opends/server/backends/jdbc/Backend.java | 6 ++-- .../jdbc/{Storage.java => JDBCStorage.java} | 6 ++-- .../opends/server/core/SubentryManager.java | 7 +++-- .../backends/cassandra/EncryptedTestCase.java | 4 +-- .../server/backends/cassandra/TestCase.java | 4 +-- .../opends/server/backends/jdbc/TestCase.java | 2 +- 9 files changed, 36 insertions(+), 50 deletions(-) delete mode 100644 opendj-server-legacy/src/main/java/org/opends/admin/ads/util/BlindHostnameVerifier.java rename opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/{Storage.java => CASStorage.java} (97%) rename opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/{Storage.java => JDBCStorage.java} (99%) diff --git a/opendj-server-legacy/src/main/java/org/opends/admin/ads/util/BlindHostnameVerifier.java b/opendj-server-legacy/src/main/java/org/opends/admin/ads/util/BlindHostnameVerifier.java deleted file mode 100644 index f11490b19d..0000000000 --- a/opendj-server-legacy/src/main/java/org/opends/admin/ads/util/BlindHostnameVerifier.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * The contents of this file are subject to the terms of the Common Development and - * Distribution License (the License). You may not use this file except in compliance with the - * License. - * - * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the - * specific language governing permission and limitations under the License. - * - * When distributing Covered Software, include this CDDL Header Notice in each file and include - * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL - * Header, with the fields enclosed by brackets [] replaced by your own identifying - * information: "Portions Copyright [year] [name of copyright owner]". - * - * Copyright 2008 Sun Microsystems, Inc. - * Portions Copyright 2015-2016 ForgeRock AS. - */ -package org.opends.admin.ads.util; - -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLSession; - -/** A HostnameVerifier which verifies nothing. */ -class BlindHostnameVerifier implements HostnameVerifier -{ - @Override - public boolean verify(String hostname, SSLSession session) - { - return true; - } -} diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Backend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Backend.java index 42bcc8be2f..f15e85b561 100644 --- a/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Backend.java +++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Backend.java @@ -1,3 +1,18 @@ +/* + * The contents of this file are subject to the terms of the Common Development and + * Distribution License (the License). You may not use this file except in compliance with the + * License. + * + * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the + * specific language governing permission and limitations under the License. + * + * When distributing Covered Software, include this CDDL Header Notice in each file and include + * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL + * Header, with the fields enclosed by brackets [] replaced by your own identifying + * information: "Portions copyright [year] [name of copyright owner]". + * + * Copyright 2023-2026 3A Systems, LLC. + */ package org.opends.server.backends.cassandra; import org.forgerock.opendj.config.server.ConfigException; @@ -8,9 +23,9 @@ public class Backend extends BackendImpl{ @Override - protected Storage configureStorage(CASBackendCfg cfg, ServerContext serverContext) throws ConfigException + protected CASStorage configureStorage(CASBackendCfg cfg, ServerContext serverContext) throws ConfigException { - return new Storage(cfg, serverContext); + return new CASStorage(cfg, serverContext); } } diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Storage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/CASStorage.java similarity index 97% rename from opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Storage.java rename to opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/CASStorage.java index 3cb3d3bdab..7efeb8c81f 100644 --- a/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/Storage.java +++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/cassandra/CASStorage.java @@ -66,13 +66,13 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; -public class Storage implements org.opends.server.backends.pluggable.spi.Storage, ConfigurationChangeListener{ +public class CASStorage implements org.opends.server.backends.pluggable.spi.Storage, ConfigurationChangeListener{ private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass(); private CASBackendCfg config; - public Storage(CASBackendCfg cfg, ServerContext serverContext) { + public CASStorage(CASBackendCfg cfg, ServerContext serverContext) { this.config = cfg; cfg.addCASChangeListener(this); } @@ -123,7 +123,7 @@ public void open(AccessMode accessMode) throws Exception { this.accessMode=accessMode; session=CqlSession.builder() .withApplicationName("OpenDJ "+getKeyspaceName()+"."+config.getBackendId()) - .withConfigLoader(DriverConfigLoader.fromDefaults(Storage.class.getClassLoader())) + .withConfigLoader(DriverConfigLoader.fromDefaults(CASStorage.class.getClassLoader())) .build(); if (AccessMode.READ_WRITE.equals(accessMode)) { execute(prepared.get("CREATE KEYSPACE IF NOT EXISTS "+getKeyspaceName()+" WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'};").bind().setExecutionProfileName(profile)); @@ -450,7 +450,7 @@ public ImporterImpl() { @Override public void close() { if (!isOpen) { - Storage.this.close(); + CASStorage.this.close(); } } diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Backend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Backend.java index ce3f3f4678..1b131eb016 100644 --- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Backend.java +++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Backend.java @@ -11,7 +11,7 @@ * Header, with the fields enclosed by brackets [] replaced by your own identifying * information: "Portions Copyright [year] [name of copyright owner]". * - * Copyright 2024 3A Systems, LLC. + * Copyright 2024-2026 3A Systems, LLC. */ package org.opends.server.backends.jdbc; @@ -23,9 +23,9 @@ public class Backend extends BackendImpl{ @Override - protected Storage configureStorage(JDBCBackendCfg cfg, ServerContext serverContext) throws ConfigException + protected JDBCStorage configureStorage(JDBCBackendCfg cfg, ServerContext serverContext) throws ConfigException { - return new Storage(cfg, serverContext); + return new JDBCStorage(cfg, serverContext); } } diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Storage.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/JDBCStorage.java similarity index 99% rename from opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Storage.java rename to opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/JDBCStorage.java index 9b4dfffc9b..b8cd126165 100644 --- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/Storage.java +++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jdbc/JDBCStorage.java @@ -43,13 +43,13 @@ import static org.opends.server.backends.pluggable.spi.StorageUtils.addErrorMessage; import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString; -public class Storage implements org.opends.server.backends.pluggable.spi.Storage, ConfigurationChangeListener{ +public class JDBCStorage implements org.opends.server.backends.pluggable.spi.Storage, ConfigurationChangeListener{ private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass(); private JDBCBackendCfg config; - public Storage(JDBCBackendCfg cfg, ServerContext serverContext) { + public JDBCStorage(JDBCBackendCfg cfg, ServerContext serverContext) { this.config = cfg; cfg.addJDBCChangeListener(this); } @@ -649,7 +649,7 @@ public void close() { throw new StorageRuntimeException(e); } if (!isOpen) { - Storage.this.close(); + JDBCStorage.this.close(); } } diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java index a42fbbfc40..5c6830fe8e 100644 --- a/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java +++ b/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java @@ -13,6 +13,7 @@ * * Copyright 2009-2010 Sun Microsystems, Inc. * Portions Copyright 2011-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.opends.server.core; @@ -218,9 +219,9 @@ private void removeSubentry(Entry entry) lock.writeLock().lock(); try { - if (!removeSubEntry(dn2SubEntry, entry)) + if (!removeSubentryFrom(dn2SubEntry, entry)) { - removeSubEntry(dn2CollectiveSubEntry, entry); + removeSubentryFrom(dn2CollectiveSubEntry, entry); } } finally @@ -229,7 +230,7 @@ private void removeSubentry(Entry entry) } } - private boolean removeSubEntry(Map> subEntryMap, Entry entry) + private boolean removeSubentryFrom(Map> subEntryMap, Entry entry) { Iterator> subEntryListsIt = subEntryMap.values().iterator(); while (subEntryListsIt.hasNext()) diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/EncryptedTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/EncryptedTestCase.java index 6b6a1e687b..c5ad97dc0e 100644 --- a/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/EncryptedTestCase.java +++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/EncryptedTestCase.java @@ -11,7 +11,7 @@ * Header, with the fields enclosed by brackets [] replaced by your own identifying * information: "Portions Copyright [year] [name of copyright owner]". * - * Copyright 2023 3A Systems, LLC. + * Copyright 2023-2026 3A Systems, LLC. */ package org.opends.server.backends.cassandra; @@ -51,7 +51,7 @@ protected Backend createBackend() { //test allow cassandra try(CqlSession session=CqlSession.builder() - .withConfigLoader(DriverConfigLoader.fromDefaults(Storage.class.getClassLoader())) + .withConfigLoader(DriverConfigLoader.fromDefaults(CASStorage.class.getClassLoader())) .build()){ session.close(); }catch (AllNodesFailedException e) { diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/TestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/TestCase.java index d741972381..ed0baf3b87 100644 --- a/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/TestCase.java +++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/cassandra/TestCase.java @@ -11,7 +11,7 @@ * Header, with the fields enclosed by brackets [] replaced by your own identifying * information: "Portions Copyright [year] [name of copyright owner]". * - * Copyright 2023 3A Systems, LLC. + * Copyright 2023-2026 3A Systems, LLC. */ package org.opends.server.backends.cassandra; @@ -51,7 +51,7 @@ protected Backend createBackend() { //test allow cassandra try(CqlSession session=CqlSession.builder() - .withConfigLoader(DriverConfigLoader.fromDefaults(Storage.class.getClassLoader())) + .withConfigLoader(DriverConfigLoader.fromDefaults(CASStorage.class.getClassLoader())) .build()){ session.close(); }catch (AllNodesFailedException e) { diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/jdbc/TestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/jdbc/TestCase.java index 03316e22eb..e4463b356b 100644 --- a/opendj-server-legacy/src/test/java/org/opends/server/backends/jdbc/TestCase.java +++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/jdbc/TestCase.java @@ -141,7 +141,7 @@ private static ByteString value(int i) { @Test public void testCursorCrossesFetchSizeBatches() throws Exception { System.setProperty("org.openidentityplatform.opendj.jdbc.fetchsize", "2"); - final Storage storage = new Storage(createBackendCfg(), null); + final JDBCStorage storage = new JDBCStorage(createBackendCfg(), null); final TreeName tree = new TreeName("testCursorBatch", "tree"); try { storage.open(AccessMode.READ_WRITE);