|
15 | 15 | import io.strimzi.api.kafka.model.user.KafkaUser; |
16 | 16 | import io.strimzi.api.kafka.model.user.KafkaUserScramSha512ClientAuthenticationBuilder; |
17 | 17 | import io.strimzi.api.kafka.model.user.KafkaUserSpec; |
| 18 | +import io.strimzi.operator.common.Util; |
18 | 19 | import io.strimzi.systemtest.TestConstants; |
19 | 20 | import io.strimzi.systemtest.resources.ResourceConditions; |
20 | 21 | import io.strimzi.systemtest.resources.ResourceOperation; |
|
23 | 24 | import org.apache.logging.log4j.LogManager; |
24 | 25 | import org.apache.logging.log4j.Logger; |
25 | 26 |
|
| 27 | +import java.io.ByteArrayInputStream; |
26 | 28 | import java.io.File; |
27 | 29 | import java.io.IOException; |
| 30 | +import java.security.cert.CertificateException; |
| 31 | +import java.security.cert.CertificateFactory; |
| 32 | +import java.security.cert.X509Certificate; |
| 33 | +import java.time.temporal.ChronoUnit; |
28 | 34 | import java.util.List; |
29 | 35 | import java.util.Random; |
30 | 36 | import java.util.function.Consumer; |
@@ -255,4 +261,17 @@ public static void waitForUserWithPrefixDeletion(String namespaceName, String us |
255 | 261 | } |
256 | 262 | }); |
257 | 263 | } |
| 264 | + |
| 265 | + public static int getValidityDaysOfCertificate(String certificate) { |
| 266 | + try { |
| 267 | + byte[] certBytes = Util.decodeFromBase64(certificate).getBytes(); |
| 268 | + CertificateFactory cf = CertificateFactory.getInstance("X.509"); |
| 269 | + X509Certificate cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(certBytes)); |
| 270 | + |
| 271 | + return (int) ChronoUnit.DAYS.between(cert.getNotBefore().toInstant(), cert.getNotAfter().toInstant()); |
| 272 | + } catch (CertificateException e) { |
| 273 | + LOGGER.error("Failed to parse certificate due to: {}", e.getMessage()); |
| 274 | + throw new RuntimeException(e); |
| 275 | + } |
| 276 | + } |
258 | 277 | } |
0 commit comments