diff --git a/pom.xml b/pom.xml index d706c480..bd9b79db 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.trasier trasier-client - 2.3.8 + 2.3.9 pom trasier-client @@ -31,7 +31,7 @@ 1.7.25 2.10.4 - 2.6 + 2.7 1.24.0 9.5.0 @@ -50,7 +50,7 @@ 4.13.1 2.8.9 - 1.16.16 + 1.18.22 diff --git a/trasier-client-api-protobuf/pom.xml b/trasier-client-api-protobuf/pom.xml index d51a6ea6..c29ead40 100644 --- a/trasier-client-api-protobuf/pom.xml +++ b/trasier-client-api-protobuf/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-api/pom.xml b/trasier-client-api/pom.xml index b5d2c055..a0a4c9b1 100644 --- a/trasier-client-api/pom.xml +++ b/trasier-client-api/pom.xml @@ -4,7 +4,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 @@ -13,7 +13,7 @@ jar - 1.16.16 + 1.18.22 diff --git a/trasier-client-core/pom.xml b/trasier-client-core/pom.xml index 5ff6844e..358ab1d3 100644 --- a/trasier-client-core/pom.xml +++ b/trasier-client-core/pom.xml @@ -4,7 +4,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-core/src/main/java/com/trasier/client/auth/AuthInterceptor.java b/trasier-client-core/src/main/java/com/trasier/client/auth/AuthInterceptor.java new file mode 100644 index 00000000..876ee1bb --- /dev/null +++ b/trasier-client-core/src/main/java/com/trasier/client/auth/AuthInterceptor.java @@ -0,0 +1,9 @@ +package com.trasier.client.auth; + +public interface AuthInterceptor { + + String getToken(); + + void refreshToken(); + +} diff --git a/trasier-client-core/src/main/java/com/trasier/client/auth/NoAuthInterceptor.java b/trasier-client-core/src/main/java/com/trasier/client/auth/NoAuthInterceptor.java new file mode 100644 index 00000000..e677fcd5 --- /dev/null +++ b/trasier-client-core/src/main/java/com/trasier/client/auth/NoAuthInterceptor.java @@ -0,0 +1,13 @@ +package com.trasier.client.auth; + +public class NoAuthInterceptor implements AuthInterceptor { + + @Override + public String getToken() { + throw new IllegalStateException("getToken() should not be called if NoAuth is used"); + } + + @Override + public void refreshToken() { + } +} diff --git a/trasier-client-core/src/main/java/com/trasier/client/auth/OAuthTokenSafe.java b/trasier-client-core/src/main/java/com/trasier/client/auth/OAuthTokenSafe.java index 37e93fa2..f3612f66 100644 --- a/trasier-client-core/src/main/java/com/trasier/client/auth/OAuthTokenSafe.java +++ b/trasier-client-core/src/main/java/com/trasier/client/auth/OAuthTokenSafe.java @@ -17,7 +17,7 @@ import java.util.Base64; import java.util.concurrent.atomic.AtomicBoolean; -public class OAuthTokenSafe { +public class OAuthTokenSafe implements AuthInterceptor { private static final Logger LOGGER = LoggerFactory.getLogger(OAuthTokenSafe.class); private static final int EXPIRES_IN_TOLERANCE = 60; @@ -40,6 +40,7 @@ public OAuthTokenSafe(TrasierClientConfiguration clientConfiguration, String aut this.asyncHandler = new AsyncTokenHandler(); } + @Override public String getToken() { if (isTokenInvalid()) { refreshToken(); @@ -47,6 +48,7 @@ public String getToken() { return token != null ? token.getAccessToken() : null; } + @Override public void refreshToken() { if (isTokenInvalid()) { if (!isFeatching.getAndSet(true)) { diff --git a/trasier-client-core/src/main/java/com/trasier/client/configuration/TrasierClientConfiguration.java b/trasier-client-core/src/main/java/com/trasier/client/configuration/TrasierClientConfiguration.java index 26240bd1..f942cb92 100644 --- a/trasier-client-core/src/main/java/com/trasier/client/configuration/TrasierClientConfiguration.java +++ b/trasier-client-core/src/main/java/com/trasier/client/configuration/TrasierClientConfiguration.java @@ -7,6 +7,7 @@ public class TrasierClientConfiguration { private String clientSecret; private String systemName; + private boolean useAuth = true; private boolean activated = true; private boolean payloadTracingDisabled = false; private boolean compressPayloadDisabled = false; @@ -121,4 +122,11 @@ public void setAhcRequestTimeout(final int ahcRequestTimeout) { this.ahcRequestTimeout = ahcRequestTimeout; } + public boolean isUseAuth() { + return useAuth; + } + + public void setUseAuth(boolean useAuth) { + this.useAuth = useAuth; + } } \ No newline at end of file diff --git a/trasier-client-core/src/main/java/com/trasier/client/http/TrasierHttpClient.java b/trasier-client-core/src/main/java/com/trasier/client/http/TrasierHttpClient.java index faf78c97..3119a2af 100644 --- a/trasier-client-core/src/main/java/com/trasier/client/http/TrasierHttpClient.java +++ b/trasier-client-core/src/main/java/com/trasier/client/http/TrasierHttpClient.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.trasier.client.api.Client; import com.trasier.client.api.Span; -import com.trasier.client.auth.OAuthTokenSafe; +import com.trasier.client.auth.AuthInterceptor; import com.trasier.client.configuration.TrasierClientConfiguration; import com.trasier.client.configuration.TrasierEndpointConfiguration; import com.trasier.client.interceptor.TrasierSpanInterceptor; @@ -27,14 +27,14 @@ public class TrasierHttpClient implements Client { private final TrasierClientConfiguration clientConfiguration; private final ObjectMapper mapper; private final AsyncHttpClient client; - private final OAuthTokenSafe tokenSafe; + private final AuthInterceptor authInterceptor; private final List spanInterceptors; private final String writerEndpointUrl; private final TrasierHttpClientHandler handler; - public TrasierHttpClient(TrasierClientConfiguration clientConfiguration, TrasierEndpointConfiguration endpointConfiguration, OAuthTokenSafe tokenSafe, AsyncHttpClient client) { + public TrasierHttpClient(TrasierClientConfiguration clientConfiguration, TrasierEndpointConfiguration endpointConfiguration, AuthInterceptor authInterceptor, AsyncHttpClient client) { this.clientConfiguration = clientConfiguration; - this.tokenSafe = tokenSafe; + this.authInterceptor = authInterceptor; this.client = client; this.mapper = createObjectMapper(); this.spanInterceptors = new ArrayList<>(); @@ -71,18 +71,20 @@ public boolean sendSpans(List spans) { } protected boolean sendSpansInternal(List spans) throws JsonProcessingException { - String token = tokenSafe.getToken(); - if(token != null && !token.isEmpty()) { - BoundRequestBuilder requestBuilder = client - .preparePost(writerEndpointUrl) - .setHeader("Content-Type", "application/json") - .setHeader("Authorization", "Bearer " + token) - .setBody(mapper.writeValueAsBytes(spans)); - Request request = requestBuilder.build(); - client.executeRequest(request, handler); - return true; + BoundRequestBuilder requestBuilder = client.preparePost(writerEndpointUrl); + if (clientConfiguration.isUseAuth()) { + String token = authInterceptor.getToken(); + if (token == null || token.isEmpty()) { + return false; + } + requestBuilder.setHeader("Authorization", "Bearer " + token); } - return false; + + requestBuilder.setHeader("Content-Type", "application/json"); + requestBuilder.setBody(mapper.writeValueAsBytes(spans)); + Request request = requestBuilder.build(); + client.executeRequest(request, handler); + return true; } @Override diff --git a/trasier-client-opentracing/pom.xml b/trasier-client-opentracing/pom.xml index 76beddd8..b2bac0b9 100644 --- a/trasier-client-opentracing/pom.xml +++ b/trasier-client-opentracing/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-boot/pom.xml b/trasier-client-spring-boot/pom.xml index 5a8b6fba..b6756e3f 100644 --- a/trasier-client-spring-boot/pom.xml +++ b/trasier-client-spring-boot/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-grpc-starter/pom.xml b/trasier-client-spring-grpc-starter/pom.xml index 908f5c76..86fbca96 100644 --- a/trasier-client-spring-grpc-starter/pom.xml +++ b/trasier-client-spring-grpc-starter/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-grpc/pom.xml b/trasier-client-spring-grpc/pom.xml index a7978960..0bc4eba4 100644 --- a/trasier-client-spring-grpc/pom.xml +++ b/trasier-client-spring-grpc/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-grpc/src/main/java/com/trasier/client/spring/grpc/TrasierAuthClientInterceptor.java b/trasier-client-spring-grpc/src/main/java/com/trasier/client/spring/grpc/TrasierAuthClientInterceptor.java index bf0763ad..f714a79d 100644 --- a/trasier-client-spring-grpc/src/main/java/com/trasier/client/spring/grpc/TrasierAuthClientInterceptor.java +++ b/trasier-client-spring-grpc/src/main/java/com/trasier/client/spring/grpc/TrasierAuthClientInterceptor.java @@ -1,5 +1,7 @@ package com.trasier.client.spring.grpc; +import com.trasier.client.auth.AuthInterceptor; +import com.trasier.client.auth.NoAuthInterceptor; import com.trasier.client.auth.OAuthTokenSafe; import com.trasier.client.configuration.TrasierClientConfiguration; import com.trasier.client.configuration.TrasierEndpointConfiguration; @@ -21,24 +23,24 @@ public class TrasierAuthClientInterceptor implements ClientInterceptor { private final TrasierClientConfiguration clientConfiguration; - private final OAuthTokenSafe oAuthTokenSafe; + private final AuthInterceptor authInterceptor; @Autowired public TrasierAuthClientInterceptor(TrasierClientConfiguration clientConfiguration, TrasierEndpointConfiguration endpointConfiguration) { this.clientConfiguration = clientConfiguration; AsyncHttpClient client = AsyncHttpClientFactory.createDefaultClient(clientConfiguration); - this.oAuthTokenSafe = new OAuthTokenSafe(clientConfiguration, endpointConfiguration.getAuthEndpoint(), client); + this.authInterceptor = clientConfiguration.isUseAuth() ? new OAuthTokenSafe(clientConfiguration, endpointConfiguration.getAuthEndpoint(), client) : new NoAuthInterceptor(); } - public TrasierAuthClientInterceptor(TrasierClientConfiguration clientConfiguration, OAuthTokenSafe tokenSafe) { + public TrasierAuthClientInterceptor(TrasierClientConfiguration clientConfiguration, AuthInterceptor tokenSafe) { this.clientConfiguration = clientConfiguration; - this.oAuthTokenSafe = tokenSafe; + this.authInterceptor = tokenSafe; } @PostConstruct public void init() { if (clientConfiguration.isActivated()) { - oAuthTokenSafe.refreshToken(); + authInterceptor.refreshToken(); } } @@ -47,9 +49,15 @@ public ClientCall interceptCall(MethodDescriptor trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-interceptor-boot/pom.xml b/trasier-client-spring-interceptor-boot/pom.xml index 93c26300..63f9adf2 100644 --- a/trasier-client-spring-interceptor-boot/pom.xml +++ b/trasier-client-spring-interceptor-boot/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-interceptor-ws/pom.xml b/trasier-client-spring-interceptor-ws/pom.xml index d7db59b9..478988fb 100644 --- a/trasier-client-spring-interceptor-ws/pom.xml +++ b/trasier-client-spring-interceptor-ws/pom.xml @@ -4,7 +4,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-interceptor/pom.xml b/trasier-client-spring-interceptor/pom.xml index 54440e27..b11713a6 100644 --- a/trasier-client-spring-interceptor/pom.xml +++ b/trasier-client-spring-interceptor/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-noop-starter/pom.xml b/trasier-client-spring-noop-starter/pom.xml index f9977c5a..22e49a6b 100644 --- a/trasier-client-spring-noop-starter/pom.xml +++ b/trasier-client-spring-noop-starter/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-noop/pom.xml b/trasier-client-spring-noop/pom.xml index 055d9c60..e0a7ef18 100644 --- a/trasier-client-spring-noop/pom.xml +++ b/trasier-client-spring-noop/pom.xml @@ -3,12 +3,12 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 - 1.16.16 + 1.18.22 trasier-client-spring-noop diff --git a/trasier-client-spring-rest-starter/pom.xml b/trasier-client-spring-rest-starter/pom.xml index 61706dc0..cd746aa0 100644 --- a/trasier-client-spring-rest-starter/pom.xml +++ b/trasier-client-spring-rest-starter/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-rest/pom.xml b/trasier-client-spring-rest/pom.xml index 16f025aa..da2976da 100644 --- a/trasier-client-spring-rest/pom.xml +++ b/trasier-client-spring-rest/pom.xml @@ -4,7 +4,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0 diff --git a/trasier-client-spring-rest/src/main/java/com/trasier/client/spring/rest/TrasierSpringRestClient.java b/trasier-client-spring-rest/src/main/java/com/trasier/client/spring/rest/TrasierSpringRestClient.java index d38b0137..b4533fce 100644 --- a/trasier-client-spring-rest/src/main/java/com/trasier/client/spring/rest/TrasierSpringRestClient.java +++ b/trasier-client-spring-rest/src/main/java/com/trasier/client/spring/rest/TrasierSpringRestClient.java @@ -1,6 +1,8 @@ package com.trasier.client.spring.rest; import com.trasier.client.api.Span; +import com.trasier.client.auth.AuthInterceptor; +import com.trasier.client.auth.NoAuthInterceptor; import com.trasier.client.auth.OAuthTokenSafe; import com.trasier.client.configuration.TrasierClientConfiguration; import com.trasier.client.configuration.TrasierEndpointConfiguration; @@ -27,7 +29,7 @@ public class TrasierSpringRestClient implements TrasierSpringClient { @Autowired public TrasierSpringRestClient(TrasierEndpointConfiguration endpointConfiguration, TrasierClientConfiguration clientConfiguration, Optional optionalProxyConfiguration, Optional> optionalSpanInterceptors) { AsyncHttpClient client = createHttpClient(clientConfiguration, optionalProxyConfiguration); - OAuthTokenSafe tokenSafe = new OAuthTokenSafe(clientConfiguration, endpointConfiguration.getAuthEndpoint(), client); + AuthInterceptor tokenSafe = clientConfiguration.isUseAuth() ? new OAuthTokenSafe(clientConfiguration, endpointConfiguration.getAuthEndpoint(), client) : new NoAuthInterceptor(); TrasierHttpClient trasierHttpClient = new TrasierHttpClient(clientConfiguration, endpointConfiguration, tokenSafe, client); this.client = trasierHttpClient; if (clientConfiguration.isActivated()) { diff --git a/trasier-client-spring/pom.xml b/trasier-client-spring/pom.xml index 5c10e5de..7d7b4538 100644 --- a/trasier-client-spring/pom.xml +++ b/trasier-client-spring/pom.xml @@ -3,7 +3,7 @@ trasier-client com.trasier - 2.3.8 + 2.3.9 4.0.0