Skip to content

Commit

Permalink
retours MR + camelCase on package
Browse files Browse the repository at this point in the history
  • Loading branch information
lucas-amiaud committed Apr 12, 2021
1 parent e08f07e commit da8c8d5
Show file tree
Hide file tree
Showing 22 changed files with 141 additions and 126 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.coreoz.plume.admin;

import com.coreoz.plume.admin.services.logApi.HttpHeader;
import com.coreoz.plume.admin.services.logApi.LogApiService;
import com.coreoz.plume.admin.services.logApi.LogInterceptApiBean;
import com.coreoz.plume.admin.services.logapi.HttpHeader;
import com.coreoz.plume.admin.services.logapi.LogApiService;
import com.coreoz.plume.admin.services.logapi.LogInterceptApiBean;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableList;
import lombok.NonNull;
Expand All @@ -28,26 +28,30 @@
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.function.BiPredicate;
import java.util.function.Predicate;

public class OkHttpLoggerInterceptor implements Interceptor {

private static final Logger logger = LoggerFactory.getLogger("api.http");
private static final BiPredicate<Request, Response> ALWAYS_FALSE_BI_PREDICATE = (request, response) -> false;

private final String apiName;
private final LogApiService logApiService;
private final BiPredicate<Request, Response> loggingFilter;

public OkHttpLoggerInterceptor(String apiName, LogApiService logApiService, BiPredicate<Request, Response> okHttpLoggerFiltersFunction) {
private final Predicate<Request> requestFilterPredicate;
private final Predicate<Response> responseFilterPredicate;

public OkHttpLoggerInterceptor(
String apiName,
LogApiService logApiService,
Predicate<Request> requestFilterPredicate,
Predicate<Response> responseFilterPredicate
) {
this.apiName = apiName;
this.logApiService = logApiService;
this.loggingFilter = okHttpLoggerFiltersFunction;
this.requestFilterPredicate = requestFilterPredicate;
this.responseFilterPredicate = responseFilterPredicate;
}

public OkHttpLoggerInterceptor(String apiName, LogApiService logApiService) {
this(apiName, logApiService, ALWAYS_FALSE_BI_PREDICATE);
this(apiName, logApiService, request -> true, response -> true);
}

@NotNull
Expand All @@ -74,14 +78,16 @@ public Response intercept(Chain chain) throws IOException {
logger.debug("--> END {}", requestMethod);
}

long startMs = System.currentTimeMillis();
Response response = executeRequest(
chain,
request,
requestBodyString,
requestHeaders
);
long tookMs = System.currentTimeMillis() - startMs;

if (this.loggingFilter.test(request, response)) {
if (!this.requestFilterPredicate.test(request)) {
logger.debug("--> {} is marked as filtered", request.url());
logger.debug("--> END {}", requestMethod);
return response;
Expand All @@ -92,8 +98,6 @@ public Response intercept(Chain chain) throws IOException {
ResponseBody responseBody = response.body();
String responseBodyString = null;

long startNs = System.nanoTime();
long tookMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNs);
long contentLength;
String responseMessage = "-- no message --";
String bodySize = "unknown-length";
Expand All @@ -110,7 +114,7 @@ public Response intercept(Chain chain) throws IOException {
return response;
}
if (HttpHeaders.promisesBody(response)) {
responseBodyString = logResponseBody(responseBody, chainResponseHeaders, buffer);
responseBodyString = readAndLogResponseBody(responseBody, chainResponseHeaders, buffer);
} else {
logger.debug("<-- END HTTP");
}
Expand All @@ -129,6 +133,12 @@ public Response intercept(Chain chain) throws IOException {
bodySize
);

if (!this.responseFilterPredicate.test(response)) {
logger.debug("--> response {} is marked as filtered", request.url());
logger.debug("--> END {}", requestMethod);
return response;
}

LogInterceptApiBean logInterceptApiBean = new LogInterceptApiBean(
request.url().toString(),
request.method(),
Expand Down Expand Up @@ -227,7 +237,7 @@ private static String logRequestBody(@NonNull RequestBody requestBody, String me
return requestBodyString;
}

private static String logResponseBody(ResponseBody responseBody, Headers chainResponseHeaders, Buffer buffer) throws IOException {
private static String readAndLogResponseBody(ResponseBody responseBody, Headers chainResponseHeaders, Buffer buffer) throws IOException {
String responseBodyString = null;
if (bodyHasUnknownEncoding(chainResponseHeaders)) {
logger.debug("<-- END HTTP (encoded body omitted)");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.coreoz.plume.admin;

import okhttp3.HttpUrl;
import okhttp3.Request;
import okhttp3.Response;

import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;

public class OkHttpLoggerInterceptorFilters {

private OkHttpLoggerInterceptorFilters() {
// private constructor
}

public static Predicate<Request> createRequestFilterFunctionFromParameters(
Set<String> filteredEndpoints,
Set<String> filteredMethods
) {
return request -> !matchRequestEndpoints(request.url(), filteredEndpoints)
&& !matchRequestMethods(request.method(), filteredMethods);
}

public static Predicate<Response> createResponseFilterFunctionFromParameters(
Set<String> filteredEndpoints,
Set<String> filteredMethods,
Map<String, String> filteredResponseHeaders
) {
return response -> !matchRequestEndpoints(response.request().url(), filteredEndpoints)
&& !matchRequestMethods(response.request().method(), filteredMethods)
&& !matchResponseHeaders(response, filteredResponseHeaders);
}

private static boolean matchResponseHeaders(Response response, Map<String, String> filteredResponseHeaders) {
return filteredResponseHeaders.entrySet().stream().anyMatch(httpHeadersStringEntry -> {
String headerValue = response.header(httpHeadersStringEntry.getKey());
return headerValue != null && headerValue.equals(httpHeadersStringEntry.getValue());
});
}

private static boolean matchRequestEndpoints(HttpUrl url, Set<String> filteredEndPoints) {
return filteredEndPoints.stream().anyMatch(endpoint -> {
List<String> segments = url.pathSegments();
// substring : for an endpoint /hello/world, split returns ['', 'hello', 'world'], we must delete the first element
String[] endpointFilteredSegments = endpoint.substring(1).split("/");
if (segments.size() != endpointFilteredSegments.length) {
return false;
}
boolean areAllTheSame = true;
for (int i = 0; i < endpointFilteredSegments.length; i++) {
areAllTheSame = areAllTheSame && endpointFilteredSegments[i].equals(segments.get(i));
}
return areAllTheSame;
});
}

private static boolean matchRequestMethods(String method, Set<String> filteredMethods) {
// will always bu uppercase since it's added with HttpMethod values
return filteredMethods.contains(method.toUpperCase());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.function.BiPredicate;
import java.util.function.Predicate;

public class OkHttpLoggerInterceptorFiltersBuilder {
private final Set<String> filteredEndPoints;
Expand All @@ -20,7 +20,7 @@ public OkHttpLoggerInterceptorFiltersBuilder() {
this.filteredResponseHeaders = new HashMap<>();
}

public OkHttpLoggerInterceptorFiltersBuilder filterEndPoint(String endpoint) {
public OkHttpLoggerInterceptorFiltersBuilder filterEndpoint(String endpoint) {
this.filteredEndPoints.add(endpoint);
return this;
}
Expand All @@ -35,12 +35,17 @@ public OkHttpLoggerInterceptorFiltersBuilder filterResponseHeaderValue(String he
return this;
}

public BiPredicate<Request, Response> build() {
OkHttpLoggerFilters okHttpLoggerFilters = OkHttpLoggerFilters.of(
public Predicate<Request> buildRequestFilter() {
return OkHttpLoggerInterceptorFilters.createRequestFilterFunctionFromParameters(
this.filteredEndPoints,
this.filteredMethods
);
}
public Predicate<Response> buildResponseFilter() {
return OkHttpLoggerInterceptorFilters.createResponseFilterFunctionFromParameters(
this.filteredEndPoints,
this.filteredMethods,
this.filteredResponseHeaders
);
return okHttpLoggerFilters.createFilterFunctionFromParameters();
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.coreoz.plume.admin;


import com.coreoz.plume.admin.services.logApi.LogApiService;
import com.coreoz.plume.admin.services.logapi.LogApiService;
import okhttp3.OkHttpClient;


Expand All @@ -28,4 +28,4 @@ public OkHttpClient.Builder debugLoggingHttpClient(String apiName) {
.addInterceptor(new OkHttpLoggerInterceptor(apiName, logApiService));
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.coreoz.plume.admin.db.generated.LogApi;
import com.coreoz.plume.admin.db.generated.QLogApi;
import com.coreoz.plume.admin.db.generated.QLogHeader;
import com.coreoz.plume.admin.services.logApi.LogApiFilters;
import com.coreoz.plume.admin.services.logapi.LogApiFilters;
import com.coreoz.plume.db.querydsl.crud.CrudDaoQuerydsl;
import com.coreoz.plume.db.querydsl.transaction.TransactionManagerQuerydsl;
import com.google.common.base.Strings;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import lombok.Value;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import lombok.AllArgsConstructor;
import lombok.Getter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;


import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.coreoz.plume.admin.services.logapi;

public enum HttpPart {
REQUEST, RESPONSE,
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;



Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import lombok.Value;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import com.coreoz.plume.admin.db.daos.LogApiDao;
import com.coreoz.plume.admin.db.daos.LogApiTrimmed;
Expand All @@ -8,7 +8,6 @@
import com.coreoz.plume.db.crud.CrudService;
import com.coreoz.plume.services.time.TimeProvider;
import com.querydsl.core.Tuple;
import com.querydsl.core.types.dsl.NumberExpression;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -167,4 +166,4 @@ private void deleteLogsOverApiLimit() {
}
}

}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coreoz.plume.admin.services.logApi;
package com.coreoz.plume.admin.services.logapi;

import java.util.List;
import java.util.Optional;
Expand All @@ -17,7 +17,7 @@ enum MimeType {
HTML("text/html", "html"),
JSON("application/json", "json"),
TEXT("text/plain", "txt"),
PDF("application/pdf", "pdf");
;

private final String mimeType;
private final String fileExtension;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.coreoz.plume.admin.services.permission;

public class ApiLogAdminPermissions {
public class LogApiAdminPermissions {
public static final String MANAGE_API_LOGS = "MANAGE_API_LOGS";
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import javax.inject.Singleton;

import com.coreoz.plume.admin.services.configuration.LogApiConfigurationService;
import com.coreoz.plume.admin.services.logApi.LogApiService;
import com.coreoz.plume.admin.services.logapi.LogApiService;
import com.coreoz.wisp.Scheduler;
import com.coreoz.wisp.schedule.Schedules;

Expand Down
Loading

0 comments on commit da8c8d5

Please sign in to comment.