Skip to content

Commit a32731b

Browse files
feat: add more test cases
1 parent d46b2d5 commit a32731b

File tree

5 files changed

+130
-147
lines changed

5 files changed

+130
-147
lines changed

src/main/java/com/influxdb/v3/client/internal/RestClient.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,13 @@ public void checkServerTrusted(
123123
if (baseUrl.startsWith("https")) {
124124
try {
125125
SSLContext sslContext = SSLContext.getInstance("TLS");
126-
if (config.getDisableServerCertificateValidation()) {
127-
sslContext.init(null, TRUST_ALL_CERTS, new SecureRandom());
128-
builder.sslContext(sslContext);
129-
}
126+
sslContext.init(null, TRUST_ALL_CERTS, new SecureRandom());
130127

131128
if (config.certificateFilePath() != null && !config.getDisableServerCertificateValidation()) {
132129
X509TrustManager x509TrustManager = getX509TrustManagerFromFile(config.certificateFilePath());
133130
sslContext.init(null, new X509TrustManager[]{x509TrustManager}, new SecureRandom());
134131
}
132+
builder.sslContext(sslContext);
135133
} catch (Exception e) {
136134
throw new RuntimeException(e);
137135
}

src/test/java/com/influxdb/v3/client/InfluxDBClientTest.java

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public class InfluxDBClientTest {
4545
@EnabledIfEnvironmentVariable(named = "TESTING_INFLUXDB_TOKEN", matches = ".*")
4646
@EnabledIfEnvironmentVariable(named = "TESTING_INFLUXDB_DATABASE", matches = ".*")
4747
@Test
48-
void testQueryProxyAndSslCertificate() {
48+
void testQueryWithProxy() {
4949
String proxyUrl = "http://127.0.0.1:10000";
5050
try {
5151
// Continue to run this test only if Envoy proxy is running in this address http://127.0.0.1:10000
@@ -55,15 +55,11 @@ void testQueryProxyAndSslCertificate() {
5555
return;
5656
}
5757

58-
// This is real certificate downloaded from https://cloud2.influxdata.com
59-
String certificateFilePath = "src/test/java/com/influxdb/v3/client/testdata/valid-certificates.pem";
60-
6158
ClientConfig clientConfig = new ClientConfig.Builder()
6259
.host(System.getenv("TESTING_INFLUXDB_URL"))
6360
.token(System.getenv("TESTING_INFLUXDB_TOKEN").toCharArray())
6461
.database(System.getenv("TESTING_INFLUXDB_DATABASE"))
6562
.proxyUrl(proxyUrl)
66-
.certificateFilePath(certificateFilePath)
6763
.build();
6864

6965
InfluxDBClient influxDBClient = InfluxDBClient.getInstance(clientConfig);
@@ -80,6 +76,56 @@ void testQueryProxyAndSslCertificate() {
8076
}
8177
}
8278

79+
@EnabledIfEnvironmentVariable(named = "TESTING_INFLUXDB_URL", matches = ".*")
80+
@EnabledIfEnvironmentVariable(named = "TESTING_INFLUXDB_TOKEN", matches = ".*")
81+
@EnabledIfEnvironmentVariable(named = "TESTING_INFLUXDB_DATABASE", matches = ".*")
82+
@Test
83+
void correctSslCertificates() throws Exception {
84+
// This is real certificate downloaded from https://cloud2.influxdata.com
85+
String influxDBcertificateFile = "src/test/java/com/influxdb/v3/client/testdata/influxdb-certificate.pem";
86+
87+
ClientConfig clientConfig = new ClientConfig.Builder()
88+
.host(System.getenv("TESTING_INFLUXDB_URL"))
89+
.token(System.getenv("TESTING_INFLUXDB_TOKEN").toCharArray())
90+
.database(System.getenv("TESTING_INFLUXDB_DATABASE"))
91+
.certificateFilePath(influxDBcertificateFile)
92+
.build();
93+
InfluxDBClient influxDBClient = InfluxDBClient.getInstance(clientConfig);
94+
assertGetdataSuccess(influxDBClient);
95+
}
96+
97+
@Test
98+
void wrongSslCertificate() {
99+
String certificateFile = "src/test/java/com/influxdb/v3/client/testdata/docker.com.pem";
100+
101+
ClientConfig clientConfig = new ClientConfig.Builder()
102+
.host(System.getenv("TESTING_INFLUXDB_URL"))
103+
.token(System.getenv("TESTING_INFLUXDB_TOKEN").toCharArray())
104+
.database(System.getenv("TESTING_INFLUXDB_DATABASE"))
105+
.certificateFilePath(certificateFile)
106+
.build();
107+
InfluxDBClient influxDBClient = InfluxDBClient.getInstance(clientConfig);
108+
Assertions.assertThatThrownBy(() -> assertGetdataSuccess(influxDBClient))
109+
.hasMessageContaining("PKIX path building failed");
110+
}
111+
112+
@Test
113+
void disableServerCertificateValidation() throws Exception {
114+
String wrongCertificateFile = "src/test/java/com/influxdb/v3/client/testdata/docker.com.pem";
115+
116+
ClientConfig clientConfig = new ClientConfig.Builder()
117+
.host(System.getenv("TESTING_INFLUXDB_URL"))
118+
.token(System.getenv("TESTING_INFLUXDB_TOKEN").toCharArray())
119+
.database(System.getenv("TESTING_INFLUXDB_DATABASE"))
120+
.disableServerCertificateValidation(true)
121+
.certificateFilePath(wrongCertificateFile)
122+
.build();
123+
124+
// Test succeeded with wrong certificate file because disableServerCertificateValidation is true
125+
InfluxDBClient influxDBClient = InfluxDBClient.getInstance(clientConfig);
126+
assertGetdataSuccess(influxDBClient);
127+
}
128+
83129
@Test
84130
void withProxyUrl() {
85131
String proxyUrl = "http://127.0.0.1:10000";
@@ -234,4 +280,17 @@ public void testQuery() throws Exception {
234280
}
235281
}
236282
}
283+
284+
private void assertGetdataSuccess(InfluxDBClient influxDBClient) throws Exception {
285+
influxDBClient.writePoint(
286+
Point.measurement("test1")
287+
.setField("field", "field1")
288+
);
289+
try (Stream<PointValues> stream = influxDBClient.queryPoints("SELECT * FROM test1")) {
290+
stream.findFirst()
291+
.ifPresent(pointValues -> {
292+
Assertions.assertThat(pointValues.getField("field")).isEqualTo("field1");
293+
});
294+
}
295+
}
237296
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFxDCCBKygAwIBAgIQDE0Qon/WHglZ2jXwZzD0xjANBgkqhkiG9w0BAQsFADA8
3+
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRwwGgYDVQQDExNBbWF6b24g
4+
UlNBIDIwNDggTTAyMB4XDTI0MDgxODAwMDAwMFoXDTI1MDkxNjIzNTk1OVowFzEV
5+
MBMGA1UEAwwMKi5kb2NrZXIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
6+
CgKCAQEAytONEwLLBXfyepD/iE7N76+xGDWE/7g21rpPRejCobpaKGVKSL4Y8Pf9
7+
whjh5pzBLxcpQMpYcg/oW+Cp4scjhXyi9yqrOC2Vf26DRA3ufjbescZUjPP28mPO
8+
N1gGQhnr0Sa7mbhNo5JVE7yxLrjhAZFCdEpl1LYdfosYxeBowVOaxBsGfUWCxYuI
9+
HbolTUUNWJKaAN7knKmrHF0a2a6BftaTyFK/6N1FV3rXs5oD+5DEYVFN8193fdz5
10+
DUcf5p7xzjx9yXmHfdomznUPL5Sja2FSigH+Gm6EG3cBKylVCpafwQhbYbpdkP12
11+
p7KtsPGUWIwBAyRr1AUqx0ceIafa9wIDAQABo4IC5TCCAuEwHwYDVR0jBBgwFoAU
12+
wDFSzVpQw4J8dHHOy+mc+XrrguIwHQYDVR0OBBYEFFgCnhEuuG5ptVcvPfBJZssU
13+
U6jFMBcGA1UdEQQQMA6CDCouZG9ja2VyLmNvbTATBgNVHSAEDDAKMAgGBmeBDAEC
14+
ATAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC
15+
MDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwucjJtMDIuYW1hem9udHJ1c3Qu
16+
Y29tL3IybTAyLmNybDB1BggrBgEFBQcBAQRpMGcwLQYIKwYBBQUHMAGGIWh0dHA6
17+
Ly9vY3NwLnIybTAyLmFtYXpvbnRydXN0LmNvbTA2BggrBgEFBQcwAoYqaHR0cDov
18+
L2NydC5yMm0wMi5hbWF6b250cnVzdC5jb20vcjJtMDIuY2VyMAwGA1UdEwEB/wQC
19+
MAAwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB3AN3cyjSV1+EWBeeVMvrHn/g9
20+
HFDf2wA6FBJ2Ciysu8gqAAABkWTCKI4AAAQDAEgwRgIhALzND2kn+PR4aObDiWGv
21+
7QJZ/z4i/vhAGjd/vp2hjt4HAiEAytgsAcPUFd/Y98n5EQkMg6GBSUUygBMc7+Xk
22+
UVJXFgcAdQDm0jFjQHeMwRBBBtdxuc7B0kD2loSG+7qHMh39HjeOUAAAAZFkwiic
23+
AAAEAwBGMEQCIGXbP5ughe+EksczYEErOqY1LZHi9/SmXcp6/vAeuXBmAiB16Sw7
24+
1sPB/CpKq75/pEwb5pamTdmeEIaHtGQTkTMZ5QB2AMz7D2qFcQll/pWbU87psnwi
25+
6YVcDZeNtql+VMD+TA2wAAABkWTCKIoAAAQDAEcwRQIgX2WsD3ThDwalMCYqmf+X
26+
ICS9imyYmwKXJbfkSnMH/HkCIQCEkDrOAJZG1fGfyOzhSPHWPMxbuGwV18jBGe52
27+
D9PPQTANBgkqhkiG9w0BAQsFAAOCAQEAcW8Z3+JzqfGTYX+MBk2pQvo8msx+fINU
28+
ZzORUcFUNV0467G/Kc780S8GRxF8dr90WaFctMvw8yDOipfj0sacGJFVFFf5XoWu
29+
1EqYyx3hgMLCQ5DzjAoY4X1KsfPRBe2DCsqf+Nt/TVzgVjOSglURBWKV2T+Av78H
30+
HiMjtEUZbatvuKvUg5S26dvUxXseN/8Jbbt9MCCGascPOf+zXGysoBSwglt0Nz7W
31+
hjXnY+BPeLD38ouUGx0R+sZbXICR6BIxtT4GgOcmJJ/KT3fcMObhsihiq6lO1aql
32+
Yo4AvWpg2tJtwFrG4ooDRyyARljHMUMIkuTz9Dypl/dnJJfzAQLjVA==
33+
-----END CERTIFICATE-----
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
3+
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
4+
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
5+
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
6+
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
7+
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
8+
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
9+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
10+
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
11+
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
12+
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
13+
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
14+
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
15+
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
16+
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
17+
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
18+
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
19+
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
20+
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
21+
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
22+
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
23+
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
24+
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
25+
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
26+
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
27+
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
28+
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
29+
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
30+
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
31+
-----END CERTIFICATE-----

src/test/java/com/influxdb/v3/client/testdata/valid-certificates.pem

Lines changed: 0 additions & 138 deletions
This file was deleted.

0 commit comments

Comments
 (0)