Skip to content

Commit 5dad955

Browse files
committed
feat: domain name check bypass
1 parent c43d34b commit 5dad955

File tree

6 files changed

+41
-4
lines changed

6 files changed

+41
-4
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<url>https://github.com/clean-arch-enablers-project/cae-utils-http-client/blob/main/README.md</url>
99
<groupId>com.clean-arch-enablers</groupId>
1010
<artifactId>cae-http-client</artifactId>
11-
<version>2.1.0</version>
11+
<version>2.2.0</version>
1212
<packaging>jar</packaging>
1313
<licenses>
1414
<license>

src/main/java/com/cae/http_client/HttpRequestBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public interface HttpRequestBuilder extends HttpRequestBuilderForHandlers{
88
HttpRequestBuilder queryParameterOf(String queryParameterName, String queryParameterValue);
99
HttpRequestBuilder proxyAddress(String host, Integer port);
1010
HttpRequestBuilder bypassSsl();
11+
HttpRequestBuilder bypassDomainCheck();
1112
HttpRequestModel buildRequestModel();
1213

1314
}

src/main/java/com/cae/http_client/implementations/AbstractHttpRequestModel.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.cae.http_client.implementations;
22

3-
import com.cae.http_client.*;
3+
import com.cae.http_client.ExceptionHandler;
4+
import com.cae.http_client.HttpRequestMethod;
5+
import com.cae.http_client.HttpRequestModel;
6+
import com.cae.http_client.HttpResponseHandler;
47

58
import java.net.http.HttpRequest.BodyPublisher;
69
import java.util.ArrayList;
@@ -18,6 +21,7 @@ public abstract class AbstractHttpRequestModel implements HttpRequestModel {
1821
protected HttpRequestMethod method;
1922
protected ProxyAddressModel proxyAddress;
2023
protected Boolean bypassSsl = false;
24+
protected Boolean bypassDomainCheck = false;
2125
protected HttpResponseHandler genericResponseHandler;
2226
protected final Map<Integer, HttpResponseHandler> responseHandlersByStatusCode = new HashMap<>();
2327
protected final Map<Class<? extends Exception>, ExceptionHandler> exceptionHandlersByExceptionType = new HashMap<>();
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.cae.http_client.implementations;
2+
3+
import lombok.AccessLevel;
4+
import lombok.NoArgsConstructor;
5+
6+
import javax.net.ssl.SSLParameters;
7+
8+
@NoArgsConstructor(access = AccessLevel.PRIVATE)
9+
public class DomainCheckBypass {
10+
11+
public static void run(SSLParameters sslParameters){
12+
sslParameters.setEndpointIdentificationAlgorithm("");
13+
}
14+
15+
}

src/main/java/com/cae/http_client/implementations/FinalHttpRequestExecutor.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import lombok.AccessLevel;
66
import lombok.NoArgsConstructor;
77

8+
import javax.net.ssl.SSLParameters;
89
import java.io.IOException;
910
import java.net.InetSocketAddress;
1011
import java.net.ProxySelector;
@@ -38,7 +39,8 @@ public HttpResponse<String> execute(HttpRequest finalRequest){
3839
private HttpClient createClient() {
3940
var client = HttpClient.newBuilder();
4041
this.handleProxySettings(client);
41-
this.handleSslByPass(client);
42+
this.handleSslBypass(client);
43+
this.handleDomainCheckBypass(client);
4244
return client.build();
4345
}
4446

@@ -55,9 +57,18 @@ private void handleProxySettings(HttpClient.Builder client) {
5557
);
5658
}
5759

58-
private void handleSslByPass(HttpClient.Builder client) {
60+
private void handleSslBypass(HttpClient.Builder client) {
5961
if (this.httpRequestModel.bypassSsl)
6062
client.sslContext(SSLBypassSettings.getContext());
6163
}
6264

65+
private void handleDomainCheckBypass(HttpClient.Builder client) {
66+
if (this.httpRequestModel.bypassDomainCheck){
67+
var sslParameters = new SSLParameters();
68+
DomainCheckBypass.run(sslParameters);
69+
client.sslParameters(sslParameters);
70+
}
71+
}
72+
73+
6374
}

src/main/java/com/cae/http_client/implementations/HttpRequestBuilderImplementation.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ public HttpRequestBuilder bypassSsl() {
4949
return this;
5050
}
5151

52+
@Override
53+
public HttpRequestBuilder bypassDomainCheck() {
54+
this.httpRequest.bypassDomainCheck = true;
55+
return this;
56+
}
57+
5258
@Override
5359
public HttpRequestModel buildRequestModel() {
5460
return this.httpRequest;

0 commit comments

Comments
 (0)