Skip to content

Commit cc4fe24

Browse files
bloup
1 parent 27c4cb7 commit cc4fe24

File tree

7 files changed

+48
-41
lines changed

7 files changed

+48
-41
lines changed

.drone.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ services:
191191
POSTGRES_PASSWORD: openbas
192192
POSTGRES_DB: openbas
193193
- name: elastic
194-
image: docker.elastic.co/elasticsearch/elasticsearch:8.18.3
194+
image: docker.elastic.co/elasticsearch/elasticsearch:9.0.4
195195
environment:
196196
discovery.type: single-node
197197
xpack.security.enabled: false

openbas-api/pom.xml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
<opencsv-version>5.11.2</opencsv-version>
2525
<opentelemetry.version>1.52.0</opentelemetry.version>
2626
<opentelemetry-semconv.version>1.34.0</opentelemetry-semconv.version>
27-
<elasticsearch.version>8.18.3</elasticsearch.version>
2827
</properties>
2928

3029
<profiles>
@@ -51,11 +50,6 @@
5150
<artifactId>openbas-framework</artifactId>
5251
<version>1.18.9</version>
5352
</dependency>
54-
<dependency>
55-
<groupId>co.elastic.clients</groupId>
56-
<artifactId>elasticsearch-java</artifactId>
57-
<version>${elasticsearch.version}</version>
58-
</dependency>
5953
<dependency>
6054
<groupId>com.rabbitmq</groupId>
6155
<artifactId>amqp-client</artifactId>
@@ -286,6 +280,11 @@
286280
<artifactId>zip4j</artifactId>
287281
<version>2.11.5</version>
288282
</dependency>
283+
<dependency>
284+
<groupId>co.elastic.clients</groupId>
285+
<artifactId>elasticsearch-java</artifactId>
286+
<version>${elasticsearch.version}</version>
287+
</dependency>
289288
</dependencies>
290289

291290
<build>

openbas-api/src/test/resources/application.properties

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ openbas.auth-openid-enable=false
2929
## Kerberos
3030
openbas.auth-kerberos-enable=false
3131

32-
spring.datasource.url=jdbc:postgresql://localhost:5433/openbas
32+
spring.datasource.url=jdbc:postgresql://10.0.0.113:5433/openbas
3333
spring.datasource.username=openbas
3434
spring.datasource.password=openbas
3535
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
@@ -43,23 +43,25 @@ spring.jpa.properties.hibernate.jdbc.batch_size=250
4343
spring.jpa.properties.hibernate.order_inserts=true
4444

4545
### ENGINE Configuration
46+
engine.engine-aws-mode=no
47+
engine.engine-selector=elk
4648
engine.index-prefix=openbas
4749
engine.index-suffix=-000001
48-
engine.url=http://localhost:9201
50+
engine.url=http://10.0.0.113:9201
4951

5052
# Minio Properties
51-
minio.endpoint=localhost
53+
minio.endpoint=10.0.0.113
5254
minio.port=10000
5355
minio.bucket=openbas
5456
minio.access-key=minioadmin
5557
minio.access-secret=minioadmin
5658

5759
# Telemetry
58-
telemetry.obas.endpoint=http://localhost
60+
telemetry.obas.endpoint=http://10.0.0.113
5961
telemetry.service.name=openbas-telemetry
6062

6163
## TTP extraction AI Webservice
62-
ttp.extraction.ai.webservice.url=http://localhost/ttp-extraction
64+
ttp.extraction.ai.webservice.url=http://10.0.0.113/ttp-extraction
6365

6466
#############
6567
# INJECTORS #

openbas-dev/docker-compose.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ services:
8181
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD}
8282
openbas-dev-elasticsearch:
8383
container_name: openbas-dev-elasticsearch
84-
image: docker.elastic.co/elasticsearch/elasticsearch:8.18.3
84+
image: docker.elastic.co/elasticsearch/elasticsearch:9.0.4
8585
volumes:
8686
- esdata:/usr/share/elasticsearch/data
8787
- essnapshots:/usr/share/elasticsearch/snapshots
@@ -128,7 +128,7 @@ services:
128128
- 9600:9600
129129
openbas-test-elasticsearch:
130130
container_name: openbas-test-elasticsearch
131-
image: docker.elastic.co/elasticsearch/elasticsearch:8.18.3
131+
image: docker.elastic.co/elasticsearch/elasticsearch:9.0.4
132132
environment:
133133
- discovery.type=single-node
134134
- xpack.ml.enabled=false
@@ -149,7 +149,7 @@ services:
149149
- 9301:9300
150150
openbas-dev-kibana:
151151
container_name: openbas-dev-kibana
152-
image: docker.elastic.co/kibana/kibana:8.18.3
152+
image: docker.elastic.co/kibana/kibana:9.0.4
153153
environment:
154154
- ELASTICSEARCH_HOSTS=http://openbas-dev-elasticsearch:9200
155155
restart: unless-stopped
@@ -159,7 +159,7 @@ services:
159159
- openbas-dev-elasticsearch
160160
openbas-test-kibana:
161161
container_name: openbas-test-kibana
162-
image: docker.elastic.co/kibana/kibana:8.18.3
162+
image: docker.elastic.co/kibana/kibana:9.0.4
163163
environment:
164164
- ELASTICSEARCH_HOSTS=http://openbas-test-elasticsearch:9200
165165
restart: unless-stopped

openbas-model/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@
1313
<name>OpenBAS model</name>
1414
<description>OpenBAS model</description>
1515

16-
<properties>
17-
<elasticsearch.version>8.18.3</elasticsearch.version>
18-
<opensearch.version>3.1.0</opensearch.version>
19-
</properties>
20-
2116
<dependencies>
2217
<dependency>
2318
<groupId>org.springframework.boot</groupId>

openbas-model/src/main/java/io/openbas/driver/ElasticDriver.java

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import co.elastic.clients.json.JsonData;
1414
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
1515
import co.elastic.clients.transport.ElasticsearchTransport;
16-
import co.elastic.clients.transport.rest_client.RestClientTransport;
16+
import co.elastic.clients.transport.rest5_client.Rest5ClientTransport;
17+
import co.elastic.clients.transport.rest5_client.low_level.Rest5Client;
18+
import co.elastic.clients.transport.rest5_client.low_level.Rest5ClientBuilder;
1719
import com.fasterxml.jackson.databind.DeserializationFeature;
1820
import com.fasterxml.jackson.databind.SerializationFeature;
1921
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@@ -25,22 +27,24 @@
2527
import java.io.IOException;
2628
import java.lang.reflect.Field;
2729
import java.lang.reflect.ParameterizedType;
30+
import java.net.URISyntaxException;
2831
import java.security.cert.X509Certificate;
2932
import java.time.Instant;
3033
import java.util.*;
3134
import javax.net.ssl.SSLContext;
3235
import lombok.RequiredArgsConstructor;
3336
import lombok.extern.slf4j.Slf4j;
3437
import org.apache.commons.lang3.ArrayUtils;
35-
import org.apache.http.HttpHost;
36-
import org.apache.http.auth.AuthScope;
37-
import org.apache.http.auth.UsernamePasswordCredentials;
38-
import org.apache.http.conn.ssl.NoopHostnameVerifier;
39-
import org.apache.http.impl.client.BasicCredentialsProvider;
40-
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
41-
import org.apache.http.ssl.SSLContextBuilder;
42-
import org.elasticsearch.client.RestClient;
43-
import org.elasticsearch.client.RestClientBuilder;
38+
import org.apache.hc.client5.http.auth.AuthScope;
39+
import org.apache.hc.client5.http.auth.UsernamePasswordCredentials;
40+
import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
41+
import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider;
42+
import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
43+
import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManagerBuilder;
44+
import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
45+
import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
46+
import org.apache.hc.core5.http.HttpHost;
47+
import org.apache.hc.core5.ssl.SSLContextBuilder;
4448
import org.springframework.beans.factory.annotation.Autowired;
4549
import org.springframework.stereotype.Component;
4650

@@ -61,14 +65,15 @@ public void setSearchEngine(EngineContext searchEngine) {
6165
this.searchEngine = searchEngine;
6266
}
6367

64-
private ElasticsearchClient getElasticClient() {
65-
RestClientBuilder restClientBuilder = RestClient.builder(HttpHost.create(config.getUrl()));
68+
private ElasticsearchClient getElasticClient() throws URISyntaxException {
69+
Rest5ClientBuilder restClientBuilder = Rest5Client.builder(HttpHost.create(config.getUrl()));
6670
HttpAsyncClientBuilder clientBuilder = HttpAsyncClientBuilder.create();
6771
if (config.getUsername() != null) {
6872
BasicCredentialsProvider credsProv = new BasicCredentialsProvider();
6973
credsProv.setCredentials(
70-
AuthScope.ANY,
71-
new UsernamePasswordCredentials(config.getUsername(), config.getPassword()));
74+
new AuthScope(null, -1),
75+
new UsernamePasswordCredentials(
76+
config.getUsername(), config.getPassword().toCharArray()));
7277
clientBuilder.setDefaultCredentialsProvider(credsProv);
7378
}
7479
if (!config.isRejectUnauthorized()) {
@@ -78,20 +83,24 @@ private ElasticsearchClient getElasticClient() {
7883
SSLContextBuilder.create()
7984
.loadTrustMaterial(null, (X509Certificate[] chain, String authType) -> true)
8085
.build();
81-
clientBuilder
82-
.setSSLContext(sslContext)
83-
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);
86+
PoolingAsyncClientConnectionManager connectionManager =
87+
PoolingAsyncClientConnectionManagerBuilder.create()
88+
.setTlsStrategy(
89+
new DefaultClientTlsStrategy(sslContext, NoopHostnameVerifier.INSTANCE))
90+
.build();
91+
92+
clientBuilder.setConnectionManager(connectionManager);
8493
} catch (Exception e) {
8594
throw new RuntimeException(e);
8695
}
8796
}
88-
restClientBuilder.setHttpClientConfigCallback(hc -> clientBuilder);
89-
RestClient restClient = restClientBuilder.build();
97+
restClientBuilder.setHttpClient(clientBuilder.build());
98+
Rest5Client restClient = restClientBuilder.build();
9099
JacksonJsonpMapper jsonpMapper = new JacksonJsonpMapper();
91100
jsonpMapper.objectMapper().registerModule(new JavaTimeModule());
92101
jsonpMapper.objectMapper().configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
93102
jsonpMapper.objectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
94-
ElasticsearchTransport transport = new RestClientTransport(restClient, jsonpMapper);
103+
ElasticsearchTransport transport = new Rest5ClientTransport(restClient, jsonpMapper);
95104
return new ElasticsearchClient(transport);
96105
}
97106

pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
<jacoco-plugin.version>0.8.13</jacoco-plugin.version>
3030
<pyroscope.version>2.1.2</pyroscope.version>
3131
<spring-security-crypto.version>6.5.2</spring-security-crypto.version>
32+
<elasticsearch.version>9.0.4</elasticsearch.version>
33+
<opensearch.version>3.1.0</opensearch.version>
3234
</properties>
3335

3436
<distributionManagement>

0 commit comments

Comments
 (0)