Skip to content

Commit 3f85113

Browse files
authored
DXE-2981 Merge pull request #49 from akamai/release/5.1.0
DXE-2981 Release/5.1.0
2 parents 24b6be0 + 6e0c451 commit 3f85113

File tree

26 files changed

+237
-29
lines changed

26 files changed

+237
-29
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Change log
22

3+
## 5.1.0 (September 5, 2023)
4+
5+
### Improvements
6+
7+
* Add support for Apache HTTP Client version 5.
8+
9+
### Fixes
10+
11+
* Fixes for various CVE vulnerabilities by upgrading netty, dependency-check and guava libraries.
12+
* Fixes some build errors by upgrading Jacoco library.
13+
* Resolve various Javadoc warnings in different modules.
14+
315
## 5.0.0 (January 19, 2023)
416

517
### BREAKING CHANGES

edgegrid-signer-apache-http-client/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
This library implements [Akamai EdgeGrid Authentication](https://techdocs.akamai.com/developer/docs/authenticate-with-edgegrid) for Java.
77
This particular module is a binding for the [Apache HTTP Client library](https://hc.apache.org/) versions before 5.0.0.
8-
For Apache HTTP Client >= 5.0.0 support, use `edgegrid-signer-apache-http-client5` module.
8+
For Apache HTTP Client >= 5.0.0, use `edgegrid-signer-apache-http-client5` module.
99
This project contains installation and usage instructions in the [README.md](../README.md).
1010

1111
## Use Apache HTTP Client

edgegrid-signer-apache-http-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>edgegrid-signer-parent</artifactId>
88
<groupId>com.akamai.edgegrid</groupId>
9-
<version>5.0.0</version>
9+
<version>5.1.0</version>
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>
1212

edgegrid-signer-apache-http-client/src/main/java/com/akamai/edgegrid/signer/apachehttpclient/ApacheHttpClientEdgeGridRequestSigner.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,20 @@
4141
*/
4242
public class ApacheHttpClientEdgeGridRequestSigner extends AbstractEdgeGridRequestSigner<HttpRequest, HttpRequest> {
4343

44+
/**
45+
* Creates an EdgeGrid signer using {@link ClientCredential}.
46+
*
47+
* @param clientCredential a {@link ClientCredential}
48+
*/
4449
public ApacheHttpClientEdgeGridRequestSigner(ClientCredential clientCredential) {
4550
super(clientCredential);
4651
}
4752

53+
/**
54+
* Creates an EdgeGrid signer using {@link ClientCredentialProvider}.
55+
*
56+
* @param clientCredentialProvider a {@link ClientCredentialProvider}
57+
*/
4858
public ApacheHttpClientEdgeGridRequestSigner(ClientCredentialProvider clientCredentialProvider) {
4959
super(clientCredentialProvider);
5060
}

edgegrid-signer-apache-http-client/src/main/java/com/akamai/edgegrid/signer/apachehttpclient/ApacheHttpClientEdgeGridRoutePlanner.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,30 @@
2828
import org.apache.http.conn.routing.HttpRoute;
2929
import org.apache.http.impl.conn.SystemDefaultRoutePlanner;
3030
import org.apache.http.protocol.HttpContext;
31-
31+
/**
32+
* Apache HTTP Client binding for EdgeGrid route planner for computing {@link HttpRoute}.
33+
*
34+
* @author mgawinec@akamai.com
35+
*/
3236
public class ApacheHttpClientEdgeGridRoutePlanner extends SystemDefaultRoutePlanner {
3337

3438
private final ApacheHttpClientEdgeGridRequestSigner binding;
3539

40+
/**
41+
* Creates an EdgeGrid route planner using {@link ClientCredential}.
42+
*
43+
* @param clientCredential a {@link ClientCredential}
44+
*/
3645
public ApacheHttpClientEdgeGridRoutePlanner(ClientCredential clientCredential) {
3746
super(ProxySelector.getDefault());
3847
this.binding = new ApacheHttpClientEdgeGridRequestSigner(clientCredential);
3948
}
4049

50+
/**
51+
* Creates an EdgeGrid route planner using {@link ClientCredentialProvider}.
52+
*
53+
* @param clientCredentialProvider a {@link ClientCredentialProvider}
54+
*/
4155
public ApacheHttpClientEdgeGridRoutePlanner(ClientCredentialProvider clientCredentialProvider) {
4256
super(ProxySelector.getDefault());
4357
this.binding = new ApacheHttpClientEdgeGridRequestSigner(clientCredentialProvider);

edgegrid-signer-apache-http-client5/README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
-[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.akamai.edgegrid/edgegrid-signer-apache-http-client5/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.akamai.edgegrid/edgegrid-signer-apache-http-client5)
44
-[![Javadoc](http://www.javadoc.io/badge/com.akamai.edgegrid/edgegrid-signer-apache-http-client5.svg)](http://www.javadoc.io/doc/com.akamai.edgegrid/edgegrid-signer-apache-http-client5)
55

6-
This library
7-
implements [Akamai EdgeGrid Authentication](https://techdocs.akamai.com/developer/docs/authenticate-with-edgegrid) for
8-
Java.
6+
This library implements [Akamai EdgeGrid Authentication](https://techdocs.akamai.com/developer/docs/authenticate-with-edgegrid) for Java.
97
This particular module is a binding for the [Apache HTTP Client library version 5.x](https://hc.apache.org/).
108
This project contains installation and usage instructions in the [README.md](../README.md).
119

edgegrid-signer-apache-http-client5/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>edgegrid-signer-parent</artifactId>
88
<groupId>com.akamai.edgegrid</groupId>
9-
<version>5.0.0</version>
9+
<version>5.1.0</version>
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>
1212

edgegrid-signer-apache-http-client5/src/main/java/com/akamai/edgegrid/signer/apachehttpclient5/ApacheHttpClient5EdgeGridRequestSigner.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,20 @@
1919
*/
2020
public class ApacheHttpClient5EdgeGridRequestSigner extends AbstractEdgeGridRequestSigner<HttpRequest, HttpRequest> {
2121

22+
/**
23+
* Creates an EdgeGrid signer using {@link ClientCredential}.
24+
*
25+
* @param clientCredential a {@link ClientCredential}
26+
*/
2227
public ApacheHttpClient5EdgeGridRequestSigner(ClientCredential clientCredential) {
2328
super(clientCredential);
2429
}
2530

31+
/**
32+
* Creates an EdgeGrid signer using {@link ClientCredentialProvider}.
33+
*
34+
* @param clientCredentialProvider a {@link ClientCredentialProvider}
35+
*/
2636
public ApacheHttpClient5EdgeGridRequestSigner(ClientCredentialProvider clientCredentialProvider) {
2737
super(clientCredentialProvider);
2838
}
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,51 @@
11
package com.akamai.edgegrid.signer.apachehttpclient5;
22

33
import com.akamai.edgegrid.signer.ClientCredential;
4-
import org.apache.hc.client5.http.impl.routing.SystemDefaultRoutePlanner;
4+
import org.apache.hc.client5.http.HttpRoute;
5+
import org.apache.hc.client5.http.routing.HttpRoutePlanner;
6+
import org.apache.hc.core5.annotation.Contract;
7+
import org.apache.hc.core5.annotation.ThreadingBehavior;
8+
import org.apache.hc.core5.http.HttpException;
59
import org.apache.hc.core5.http.HttpHost;
610
import org.apache.hc.core5.http.protocol.HttpContext;
711

8-
import java.net.ProxySelector;
9-
10-
public class ApacheHttpClient5EdgeGridRoutePlanner extends SystemDefaultRoutePlanner {
12+
/**
13+
* Apache HTTP Client binding for EdgeGrid route planner for computing {@link HttpRoute}.
14+
*
15+
*/
16+
@Contract(threading = ThreadingBehavior.STATELESS)
17+
public class ApacheHttpClient5EdgeGridRoutePlanner implements HttpRoutePlanner {
1118

1219
private final ClientCredential clientCredential;
1320

21+
/**
22+
* Creates an EdgeGrid route planner using {@link ClientCredential}.
23+
*
24+
* @param clientCredential a {@link ClientCredential}
25+
*/
1426
public ApacheHttpClient5EdgeGridRoutePlanner(ClientCredential clientCredential) {
15-
super(ProxySelector.getDefault());
1627
this.clientCredential = clientCredential;
1728
}
1829

1930
@Override
20-
protected HttpHost determineProxy(HttpHost target, HttpContext context) {
31+
public HttpRoute determineRoute(HttpHost target, HttpContext context) throws HttpException {
2132
var hostname = clientCredential.getHost();
22-
int port = -1;
33+
int port = 443;
2334
final int pos = hostname.lastIndexOf(":");
2435
if (pos > 0) {
2536
try {
2637
port = Integer.parseInt(hostname.substring(pos + 1));
38+
if (port <= 0 || port > 65535) {
39+
throw new NumberFormatException();
40+
}
2741
} catch (NumberFormatException ex) {
2842
throw new IllegalArgumentException("Host contains invalid port number: " + hostname);
2943
}
3044
hostname = hostname.substring(0, pos);
3145
}
32-
return new HttpHost("https", hostname, port);
46+
HttpHost host = new HttpHost("https", hostname, port);
47+
return new HttpRoute(host, null, true);
3348
}
3449
}
50+
51+

edgegrid-signer-apache-http-client5/src/test/java/com/akamai/edgegrid/signer/apachehttpclient5/ApacheHttpClient5EdgeGridRequestSignerTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
import java.net.URISyntaxException;
99

1010
import static org.hamcrest.MatcherAssert.assertThat;
11-
import static org.hamcrest.Matchers.*;
11+
import static org.hamcrest.Matchers.equalTo;
12+
import static org.hamcrest.Matchers.isEmptyOrNullString;
13+
import static org.hamcrest.Matchers.not;
14+
import static org.hamcrest.Matchers.notNullValue;
1215

1316
/**
1417
* Example of use of EdgeGrid signer with Apache HTTP Client5.

0 commit comments

Comments
 (0)