Skip to content

Commit d7cc43f

Browse files
Merge pull request #30 from delirius325/jmeter-variables
Auth Header for XPack
2 parents ac41f0b + 7c61f9f commit d7cc43f

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>io.github.delirius325</groupId>
55
<artifactId>jmeter.backendlistener.elasticsearch</artifactId>
6-
<version>2.4.0</version>
6+
<version>2.4.1-SNAPSHOT</version>
77
<packaging>jar</packaging>
88

99
<name>jmeter.backendlistener.elasticsearch</name>

src/main/java/io/github/delirius325/jmeter/backendlistener/elasticsearch/ElasticSearchMetricSender.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package io.github.delirius325.jmeter.backendlistener.elasticsearch;
22

3+
import org.apache.http.Header;
34
import org.apache.http.HttpEntity;
45
import org.apache.http.HttpStatus;
56
import org.apache.http.entity.ContentType;
7+
import org.apache.http.message.BasicHeader;
68
import org.apache.http.nio.entity.NStringEntity;
79
import org.elasticsearch.client.Response;
810
import org.elasticsearch.client.RestClient;
@@ -19,11 +21,17 @@ public class ElasticSearchMetricSender {
1921
private RestClient client;
2022
private String esIndex;
2123
private List<String> metricList;
24+
private String authUser;
25+
private String authPwd;
26+
private BasicHeader authHeader;
2227

23-
public ElasticSearchMetricSender(RestClient cli, String index) {
28+
public ElasticSearchMetricSender(RestClient cli, String index, String user, String pwd) {
2429
this.client = cli;
2530
this.esIndex = index;
2631
this.metricList = new LinkedList<String>();
32+
this.authUser = user.trim();
33+
this.authPwd = pwd.trim();
34+
this.authHeader = null;
2735
}
2836

2937
/**
@@ -76,7 +84,16 @@ public void sendRequest() {
7684

7785
HttpEntity entity = new NStringEntity(bulkRequestBody.toString(), ContentType.APPLICATION_JSON);
7886
try {
79-
Response response = this.client.performRequest("POST", "/"+ this.esIndex +"/SampleResult/_bulk", Collections.emptyMap(), entity);
87+
if(!this.authUser.equals("") && !this.authPwd.equals("")) {
88+
String encodedCredentials = Base64.getEncoder().encodeToString((this.authUser + ":" + this.authPwd).getBytes());
89+
90+
this.authHeader = new BasicHeader("Authorization", "Basic " + encodedCredentials);
91+
}
92+
93+
Response response = (this.authHeader != null)
94+
? this.client.performRequest("POST", "/"+ this.esIndex +"/SampleResult/_bulk", Collections.emptyMap(), entity, this.authHeader)
95+
: this.client.performRequest("POST", "/"+ this.esIndex +"/SampleResult/_bulk", Collections.emptyMap(), entity);
96+
8097
if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
8198
if(logger.isErrorEnabled()) {
8299
logger.error("ElasticSearch Backend Listener failed to write results for index {}", this.esIndex);

src/main/java/io/github/delirius325/jmeter/backendlistener/elasticsearch/ElasticsearchBackendClient.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public class ElasticsearchBackendClient extends AbstractBackendListenerClient {
2525
private static final String ES_SAMPLE_FILTER = "es.sample.filter";
2626
private static final String ES_TEST_MODE = "es.test.mode";
2727
private static final String ES_INCLUDE_VARS = "es.include.all.vars";
28+
private static final String ES_AUTH_USER = "es.xpack.user";
29+
private static final String ES_AUTH_PWD = "es.xpack.password";
2830
private static final long DEFAULT_TIMEOUT_MS = 200L;
2931
private static final Logger logger = LoggerFactory.getLogger(ElasticsearchBackendClient.class);
3032

@@ -49,6 +51,8 @@ public Arguments getDefaultParameters() {
4951
parameters.addArgument(ES_SAMPLE_FILTER, null);
5052
parameters.addArgument(ES_TEST_MODE, "info");
5153
parameters.addArgument(ES_INCLUDE_VARS, "false");
54+
parameters.addArgument(ES_AUTH_USER, "");
55+
parameters.addArgument(ES_AUTH_PWD, "");
5256
return parameters;
5357
}
5458

@@ -71,7 +75,8 @@ public void onFailure(HttpHost host) {
7175
})
7276
.setMaxRetryTimeoutMillis(60000)
7377
.build();
74-
this.sender = new ElasticSearchMetricSender(this.client, context.getParameter(ES_INDEX).toLowerCase());
78+
79+
this.sender = new ElasticSearchMetricSender(this.client, context.getParameter(ES_INDEX).toLowerCase() ,context.getParameter(ES_AUTH_USER), context.getParameter(ES_AUTH_PWD));
7580
this.sender.createIndex();
7681

7782
checkTestMode(context.getParameter(ES_TEST_MODE));

0 commit comments

Comments
 (0)