This is an automated email from the ASF dual-hosted git repository.
ritesh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new e6554d7118 HDDS-9066. Remove the renew logic added by HDDS-7453.
(#5107)
e6554d7118 is described below
commit e6554d7118b355621762aee004f154ff9c4ec02b
Author: Istvan Fajth <[email protected]>
AuthorDate: Tue Jul 25 20:27:41 2023 +0200
HDDS-9066. Remove the renew logic added by HDDS-7453. (#5107)
---
.../x509/certificate/client/CertificateClient.java | 3 +-
.../apache/hadoop/ozone/HddsDatanodeService.java | 8 ---
.../client/CommonCertificateClient.java | 6 --
.../client/DefaultCertificateClient.java | 51 +---------------
.../certificate/client/SCMCertificateClient.java | 3 -
.../client/TestDefaultCertificateClient.java | 69 ----------------------
.../org/apache/hadoop/ozone/om/OzoneManager.java | 11 ----
.../org/apache/hadoop/ozone/recon/ReconServer.java | 9 ---
8 files changed, 2 insertions(+), 158 deletions(-)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CertificateClient.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CertificateClient.java
index d969439c3a..656f2acab5 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CertificateClient.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CertificateClient.java
@@ -263,7 +263,6 @@ public interface CertificateClient extends Closeable {
SUCCESS,
FAILURE,
GETCERT,
- RECOVER,
- REINIT
+ RECOVER
}
}
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
index 06a296047d..417cc83bd5 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
@@ -384,14 +384,6 @@ public class HddsDatanodeService extends GenericCli
implements ServicePlugin {
certClient = dnCertClient;
}
CertificateClient.InitResponse response = certClient.init();
- if (response.equals(CertificateClient.InitResponse.REINIT)) {
- certClient.close();
- LOG.info("Re-initialize certificate client.");
- certClient = new DNCertificateClient(secConf,
- createScmSecurityClient(),
- datanodeDetails, null, this::saveNewCertId, this::terminateDatanode);
- response = certClient.init();
- }
LOG.info("Init response: {}", response);
switch (response) {
case SUCCESS:
diff --git
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CommonCertificateClient.java
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CommonCertificateClient.java
index 8ab3c13719..a09eb05dc6 100644
---
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CommonCertificateClient.java
+++
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/CommonCertificateClient.java
@@ -28,7 +28,6 @@ import java.util.function.Consumer;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.FAILURE;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.GETCERT;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.RECOVER;
-import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.REINIT;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.SUCCESS;
/**
@@ -114,11 +113,6 @@ public abstract class CommonCertificateClient extends
DefaultCertificateClient {
} else {
return FAILURE;
}
- case EXPIRED_CERT:
- getLogger().info("Component certificate is about to expire. Initiating" +
- "renewal.");
- removeMaterial();
- return REINIT;
default:
log.error("Unexpected case: {} (private/public/cert)",
Integer.toBinaryString(init.ordinal()));
diff --git
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/DefaultCertificateClient.java
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/DefaultCertificateClient.java
index 6077895817..4b71a751d8 100644
---
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/DefaultCertificateClient.java
+++
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/DefaultCertificateClient.java
@@ -40,7 +40,6 @@ import java.security.cert.CertPath;
import java.security.cert.X509Certificate;
import java.security.spec.InvalidKeySpecException;
import java.time.Duration;
-import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
@@ -85,7 +84,6 @@ import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_BACKUP_KEY_CERT_DIR_NAM
import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_NEW_KEY_CERT_DIR_NAME_SUFFIX;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.FAILURE;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.GETCERT;
-import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.REINIT;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.SUCCESS;
import static
org.apache.hadoop.hdds.security.x509.exception.CertificateException.ErrorCode.BOOTSTRAP_ERROR;
import static
org.apache.hadoop.hdds.security.x509.exception.CertificateException.ErrorCode.CERTIFICATE_ERROR;
@@ -637,10 +635,6 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
* successfully from configured location but
* Certificate.
* 7. ALL Keypair as well as certificate is present.
- * 8. EXPIRED_CERT The certificate is present, but either it has
- * already expired, or is about to be expired within
- * the grace period provided in the configuration.
- *
* */
protected enum InitCase {
NONE,
@@ -650,8 +644,7 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
PRIVATE_KEY,
PRIVATEKEY_CERT,
PUBLICKEY_PRIVATEKEY,
- ALL,
- EXPIRED_CERT
+ ALL
}
/**
@@ -661,9 +654,6 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
* 2. Generates and stores a keypair.
* 3. Try to recover public key if private key and certificate is present
* but public key is missing.
- * 4. Checks if the certificate is about to be expired or have already been
- * expired, and if yes removes the key material and the certificate and
- * asks for re-initialization in the result.
*
* Truth table:
* +--------------+-----------------+--------------+----------------+
@@ -694,14 +684,6 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
* will be generated and stored at configured location.
* 2. When keypair (public/private key) is available but certificate is
* missing.
- *
- * Returns REINIT in following case:
- * If it would return SUCCESS, but the certificate expiration date is
- * within the configured grace period or if the certificate is already
- * expired.
- * The grace period is configured by the hdds.x509.renew.grace.duration
- * configuration property.
- *
*/
@Override
public synchronized InitResponse init() throws CertificateException {
@@ -719,18 +701,6 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
initCase = initCase | 1;
}
- boolean successCase =
- initCase == InitCase.ALL.ordinal() ||
- initCase == InitCase.PRIVATEKEY_CERT.ordinal();
- boolean shouldRenew =
- certificate != null &&
- Instant.now().plus(securityConfig.getRenewalGracePeriod())
- .isAfter(certificate.getNotAfter().toInstant());
-
- if (successCase && shouldRenew) {
- initCase = InitCase.EXPIRED_CERT.ordinal();
- }
-
getLogger().info("Certificate client init case: {}", initCase);
Preconditions.checkArgument(initCase < InitCase.values().length, "Not a " +
"valid case.");
@@ -796,11 +766,6 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
} else {
return FAILURE;
}
- case EXPIRED_CERT:
- getLogger().info("Component certificate is about to expire. Initiating" +
- "renewal.");
- removeMaterial();
- return REINIT;
default:
getLogger().error("Unexpected case: {} (private/public/cert)",
Integer.toBinaryString(init.ordinal()));
@@ -809,20 +774,6 @@ public abstract class DefaultCertificateClient implements
CertificateClient {
}
}
- protected void removeMaterial() throws CertificateException {
- try {
- FileUtils.deleteDirectory(
- securityConfig.getKeyLocation(component).toFile());
- getLogger().info("Certificate renewal: key material is removed.");
- FileUtils.deleteDirectory(
- securityConfig.getCertificateLocation(component).toFile());
- getLogger().info("Certificate renewal: certificates are removed.");
- } catch (IOException e) {
- throw new CertificateException("Certificate renewal failed: remove key" +
- " material failed.", e);
- }
- }
-
/**
* Validate keypair and certificate.
* */
diff --git
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/SCMCertificateClient.java
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/SCMCertificateClient.java
index 262bb4b570..15e6614cd0 100644
---
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/SCMCertificateClient.java
+++
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/client/SCMCertificateClient.java
@@ -136,9 +136,6 @@ public class SCMCertificateClient extends
DefaultCertificateClient {
} else {
return FAILURE;
}
- case EXPIRED_CERT:
- LOG.warn("SCM CA certificate is about to be expire!");
- return SUCCESS;
default:
LOG.error("Unexpected case: {} (private/public/cert)",
Integer.toBinaryString(init.ordinal()));
diff --git
a/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/security/x509/certificate/client/TestDefaultCertificateClient.java
b/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/security/x509/certificate/client/TestDefaultCertificateClient.java
index 3bd352713a..5686f0df9e 100644
---
a/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/security/x509/certificate/client/TestDefaultCertificateClient.java
+++
b/hadoop-hdds/framework/src/test/java/org/apache/hadoop/hdds/security/x509/certificate/client/TestDefaultCertificateClient.java
@@ -23,7 +23,6 @@ import org.apache.hadoop.hdds.protocol.MockDatanodeDetails;
import
org.apache.hadoop.hdds.protocol.proto.SCMSecurityProtocolProtos.SCMGetCertResponseProto;
import
org.apache.hadoop.hdds.protocolPB.SCMSecurityProtocolClientSideTranslatorPB;
import org.apache.hadoop.hdds.security.x509.certificate.authority.CAType;
-import
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse;
import org.apache.hadoop.hdds.security.x509.certificate.utils.CertificateCodec;
import org.apache.hadoop.hdds.security.x509.exception.CertificateException;
import org.apache.hadoop.hdds.security.x509.keys.KeyCodec;
@@ -45,8 +44,6 @@ import java.security.Signature;
import java.security.cert.X509Certificate;
import java.time.Duration;
import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
import java.util.UUID;
import java.util.function.Predicate;
@@ -68,7 +65,6 @@ import static
org.apache.hadoop.fs.CommonConfigurationKeysPublic.IPC_CLIENT_CONN
import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_METADATA_DIR_NAME;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_NAMES;
import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.FAILURE;
-import static
org.apache.hadoop.hdds.security.x509.certificate.client.CertificateClient.InitResponse.REINIT;
import static
org.apache.hadoop.hdds.security.x509.certificate.utils.CertificateCodec.getPEMEncodedString;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -80,9 +76,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/**
@@ -446,69 +440,6 @@ public class TestDefaultCertificateClient {
assertTrue(dnClientLog.getOutput().contains("Can't recover public key"));
}
- @Test
- public void testCertificateExpirationHandlingInInit() throws Exception {
- String certId = "1L";
- String compName = "TEST";
-
- Logger mockLogger = mock(Logger.class);
-
- SecurityConfig config = mock(SecurityConfig.class);
- Path nonexistent = Paths.get("nonexistent");
- when(config.getCertificateLocation(anyString())).thenReturn(nonexistent);
- when(config.getKeyLocation(anyString())).thenReturn(nonexistent);
- when(config.getRenewalGracePeriod()).thenReturn(Duration.ofDays(28));
-
- Calendar cal = Calendar.getInstance();
- cal.add(Calendar.DAY_OF_YEAR, 2);
- Date expiration = cal.getTime();
- X509Certificate mockCert = mock(X509Certificate.class);
- when(mockCert.getNotAfter()).thenReturn(expiration);
-
- try (DefaultCertificateClient client =
- new DefaultCertificateClient(config, null, mockLogger, certId,
compName,
- null, null) {
- @Override
- public PrivateKey getPrivateKey() {
- return mock(PrivateKey.class);
- }
-
- @Override
- public PublicKey getPublicKey() {
- return mock(PublicKey.class);
- }
-
- @Override
- public X509Certificate getCertificate() {
- return mockCert;
- }
-
- @Override
- public String signAndStoreCertificate(
- PKCS10CertificationRequest request, Path certificatePath) {
- return null;
- }
-
- @Override
- protected SCMGetCertResponseProto getCertificateSignResponse(
- PKCS10CertificationRequest request) {
- return null;
- }
-
- @Override
- public String signAndStoreCertificate(
- PKCS10CertificationRequest request, Path certificatePath,
- boolean renew) {
- return null;
- }
- }) {
-
- InitResponse resp = client.init();
- verify(mockLogger, atLeastOnce()).info(anyString());
- assertEquals(resp, REINIT);
- }
- }
-
@Test
public void testTimeBeforeExpiryGracePeriod() throws Exception {
KeyPair keyPair = keyGenerator.generateKey();
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index b53f930899..40b954aef5 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -80,7 +80,6 @@ import org.apache.hadoop.hdds.ratis.RatisHelper;
import org.apache.hadoop.hdds.scm.ScmInfo;
import org.apache.hadoop.hdds.scm.client.HddsClientUtils;
import org.apache.hadoop.hdds.server.OzoneAdmins;
-import org.apache.hadoop.hdds.utils.IOUtils;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.hdds.utils.db.Table.KeyValue;
import org.apache.hadoop.hdds.utils.db.TableIterator;
@@ -1393,16 +1392,6 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
new SecurityConfig(conf), scmSecurityClient, omStore, omInfo,
"", scmId, null, null);
CertificateClient.InitResponse response = certClient.init();
- if (response.equals(CertificateClient.InitResponse.REINIT)) {
- LOG.info("Re-initialize certificate client.");
- omStore.unsetOmCertSerialId();
- omStore.persistCurrentState();
- IOUtils.close(LOG, certClient);
- certClient = new OMCertificateClient(
- new SecurityConfig(conf), scmSecurityClient, omStore, omInfo,
- "", scmId, null, null);
- response = certClient.init();
- }
LOG.info("Init response: {}", response);
switch (response) {
case SUCCESS:
diff --git
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconServer.java
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconServer.java
index 9c6e81acc9..7b63595f55 100644
---
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconServer.java
+++
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/ReconServer.java
@@ -185,15 +185,6 @@ public class ReconServer extends GenericCli {
reconStorage, this::saveNewCertId, this::terminateRecon);
CertificateClient.InitResponse response = certClient.init();
- if (response.equals(CertificateClient.InitResponse.REINIT)) {
- LOG.info("Re-initialize certificate client.");
- certClient.close();
- reconStorage.unsetReconCertSerialId();
- reconStorage.persistCurrentState();
- certClient = new ReconCertificateClient(secConf, scmSecurityClient,
- reconStorage, this::saveNewCertId, this::terminateRecon);
- response = certClient.init();
- }
LOG.info("Init response: {}", response);
switch (response) {
case SUCCESS:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]