Skip to content

Commit

Permalink
#146 Adding http basic auth credentials to PhEyeFilter.
Browse files Browse the repository at this point in the history
  • Loading branch information
jzonthemtn committed Sep 25, 2024
1 parent 9de2ca0 commit e73672d
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1057,6 +1057,8 @@ public List<Filter> getFiltersForPolicy(final Policy policy, final Map<String, M
phEyeConfiguration.setTimeout(policy.getIdentifiers().getPerson().getPhEyeConfiguration().getTimeout());
phEyeConfiguration.setKeepAliveDurationMs(policy.getIdentifiers().getPerson().getPhEyeConfiguration().getKeepAliveDurationMs());
phEyeConfiguration.setMaxIdleConnections(policy.getIdentifiers().getPerson().getPhEyeConfiguration().getMaxIdleConnections());
phEyeConfiguration.setUsername(policy.getIdentifiers().getPerson().getPhEyeConfiguration().getUsername());
phEyeConfiguration.setPassword(policy.getIdentifiers().getPerson().getPhEyeConfiguration().getPassword());

final Filter filter = new PhEyeFilter(
filterConfiguration,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
public class PhEyeConfiguration {

private String endpoint;
private String username;
private String password;
private int timeout;
private int maxIdleConnections;
private int keepAliveDurationMs;
Expand Down Expand Up @@ -60,5 +62,21 @@ public Collection<String> getLabels() {
public void setLabels(Collection<String> labels) {
this.labels = labels;
}


public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/
package ai.philterd.phileas.services.filters.ai.pheye;

import ai.philterd.phileas.model.configuration.PhileasConfiguration;
import ai.philterd.phileas.model.enums.FilterType;
import ai.philterd.phileas.model.filter.FilterConfiguration;
import ai.philterd.phileas.model.filter.dynamic.NerFilter;
Expand All @@ -24,11 +23,9 @@
import ai.philterd.phileas.model.objects.Span;
import ai.philterd.phileas.model.policy.Policy;
import ai.philterd.phileas.model.services.MetricsService;
import com.amazonaws.services.s3.model.TagSet;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
import okhttp3.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
Expand All @@ -39,6 +36,7 @@
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;

import javax.annotation.Nullable;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.*;
Expand All @@ -65,13 +63,25 @@ public PhEyeFilter(final FilterConfiguration filterConfiguration,
this.removePunctuation = removePunctuation;
this.labels = phEyeConfiguration.getLabels();

final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.retryOnConnectionFailure(true)
.connectTimeout(phEyeConfiguration.getTimeout(), TimeUnit.SECONDS)
.writeTimeout(phEyeConfiguration.getTimeout(), TimeUnit.SECONDS)
.readTimeout(phEyeConfiguration.getTimeout(), TimeUnit.SECONDS)
.connectionPool(new ConnectionPool(phEyeConfiguration.getMaxIdleConnections(), phEyeConfiguration.getKeepAliveDurationMs(), TimeUnit.MILLISECONDS))
.build();
final OkHttpClient.Builder builder = new OkHttpClient.Builder();

if(StringUtils.isNotEmpty(phEyeConfiguration.getUsername()) && StringUtils.isNotEmpty(phEyeConfiguration.getPassword())) {
builder.authenticator(new Authenticator() {
@Override
public Request authenticate(final Route route, final okhttp3.Response response) {
final String credential = Credentials.basic(phEyeConfiguration.getUsername(), phEyeConfiguration.getPassword());
return response.request().newBuilder().header("Authorization", credential).build();
}
});
}

builder.retryOnConnectionFailure(true);
builder.connectTimeout(phEyeConfiguration.getTimeout(), TimeUnit.SECONDS);
builder.writeTimeout(phEyeConfiguration.getTimeout(), TimeUnit.SECONDS);
builder.readTimeout(phEyeConfiguration.getTimeout(), TimeUnit.SECONDS);
builder.connectionPool(new ConnectionPool(phEyeConfiguration.getMaxIdleConnections(), phEyeConfiguration.getKeepAliveDurationMs(), TimeUnit.MILLISECONDS));

final OkHttpClient okHttpClient = builder.build();

final Retrofit retrofit = new Retrofit.Builder()
.baseUrl(phEyeConfiguration.getEndpoint())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ public class PhEyeConfiguration {
@Expose
protected String endpoint = "http://localhost:18080/";

@SerializedName("username")
@Expose
protected String username;

@SerializedName("password")
@Expose
protected String password;

@SerializedName("timeout")
@Expose
protected int timeout = 600;
Expand Down Expand Up @@ -67,5 +75,21 @@ public Collection<String> getLabels() {
public void setLabels(Collection<String> labels) {
this.labels = labels;
}


public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public void setPassword(String password) {
this.password = password;
}

public String getPassword() {
return password;
}

}

0 comments on commit e73672d

Please sign in to comment.