Skip to content

Commit 7458db0

Browse files
committed
Upgrade JAX-RS implementation
1 parent eb74676 commit 7458db0

File tree

12 files changed

+70
-48
lines changed

12 files changed

+70
-48
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
66

77
## [Unreleased]
88

9-
## [3.0.5] - 2023-06-07
9+
## [3.0.5] - 2023-06-08
1010

1111
### Fixed
1212
- Fix dependency information stripped from non-shaded jar
@@ -17,6 +17,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1717
[cyberark/conjur-api-java#118](https://github.com/cyberark/conjur-api-java/issues/118)
1818

1919
### Changed
20+
- Migrate JAX-RS to latest Jakarta version
21+
[cyberark/conjur-api-java#119](https://github.com/cyberark/conjur-api-java/issues/119)
2022
- Avoid calling `login` for host
2123
[cyberark/conjur-api-java#117](https://github.com/cyberark/conjur-api-java/pull/117)
2224

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ to work around this:
637637
If you don't properly install the Conjur certificate into the Java keystore, you may encounter
638638
the folowing errors:
639639
- `org.apache.cxf.interceptor.Fault: Could not send Message.`
640-
- `javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: SSLHandshakeException`
640+
- `jakarta.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: SSLHandshakeException`
641641
- `javax.net.ssl.SSLHandshakeException: SSLHandshakeException`
642642
- `javax.net.ssl.SSLHandshakeException: PKIX path building failed`
643643
- `sun.security.validator.ValidatorException: PKIX path building failed`

bin/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ set -eo pipefail
33

44
docker run --rm \
55
-v "$PWD:/cyberark/conjur-java-api" \
6-
-w /cyberark/conjur-java-api maven:3-jdk-8 \
6+
-w /cyberark/conjur-java-api maven:3-jdk-11 \
77
/bin/bash -ec "mvn -X -e clean package -Dmaven.test.skip=true"

bin/deploy-release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ docker run --rm \
1818
-v "$PWD:/cyberark/conjur-java-api" \
1919
-v "$GPG_PASSWORD:/gpg_password" \
2020
-v "$GPG_PRIVATE_KEY:/gpg_key" \
21-
-w /cyberark/conjur-java-api maven:3-jdk-8 \
21+
-w /cyberark/conjur-java-api maven:3-jdk-11 \
2222
/bin/bash -ec "gpg --batch --passphrase-file /gpg_password --trust-model always --import /gpg_key
2323
mvn versions:set -DnewVersion=${TAG}
2424
mvn --settings settings.xml clean deploy -Dmaven.test.skip=true -P ossrh,sign

bin/deploy-snapshot.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ docker run --rm \
1313
-v "$PWD:/cyberark/conjur-java-api" \
1414
-v "$GPG_PASSWORD:/gpg_password" \
1515
-v "$GPG_PRIVATE_KEY:/gpg_key" \
16-
-w /cyberark/conjur-java-api maven:3-jdk-8 \
16+
-w /cyberark/conjur-java-api maven:3-jdk-11 \
1717
/bin/bash -ec "gpg --batch --passphrase-file /gpg_password --trust-model always --import /gpg_key
1818
mvn --settings settings.xml clean deploy -Dmaven.test.skip=true -P ossrh,sign"

pom.xml

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -144,23 +144,34 @@
144144

145145
<properties>
146146
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
147-
<jaxrs.version>2.0</jaxrs.version>
148147
</properties>
149148
<dependencies>
150-
<!--
151-
JAXRS Implementation
152-
You can change any of this, for example if you use Jersey 2.0 or a different implementation
153-
(codehaus has one, I think).
154-
-->
149+
150+
<!-- JAXRS Implementation -->
151+
<dependency>
152+
<groupId>jakarta.ws.rs</groupId>
153+
<artifactId>jakarta.ws.rs-api</artifactId>
154+
<version>3.1.0</version>
155+
</dependency>
156+
<dependency>
157+
<groupId>jakarta.activation</groupId>
158+
<artifactId>jakarta.activation-api</artifactId>
159+
<version>2.1.2</version>
160+
</dependency>
161+
<dependency>
162+
<groupId>org.glassfish.jersey.core</groupId>
163+
<artifactId>jersey-client</artifactId>
164+
<version>3.1.2</version>
165+
</dependency>
155166
<dependency>
156-
<groupId>javax.ws.rs</groupId>
157-
<artifactId>javax.ws.rs-api</artifactId>
158-
<version>${jaxrs.version}</version>
167+
<groupId>org.glassfish.jersey.inject</groupId>
168+
<artifactId>jersey-hk2</artifactId>
169+
<version>3.1.2</version>
159170
</dependency>
160171
<dependency>
161-
<groupId>org.apache.cxf</groupId>
162-
<artifactId>cxf-rt-rs-client</artifactId>
163-
<version>3.5.5</version>
172+
<groupId>org.glassfish.jersey.media</groupId>
173+
<artifactId>jersey-media-json-binding</artifactId>
174+
<version>3.1.2</version>
164175
</dependency>
165176

166177
<!-- JSON support -->

src/main/java/com/cyberark/conjur/api/clients/AuthnClient.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import static com.cyberark.conjur.util.EncodeUriComponent.encodeUriComponent;
44

55
import javax.net.ssl.SSLContext;
6-
import javax.ws.rs.WebApplicationException;
7-
import javax.ws.rs.client.Client;
8-
import javax.ws.rs.client.ClientBuilder;
9-
import javax.ws.rs.client.Entity;
10-
import javax.ws.rs.client.WebTarget;
11-
import javax.ws.rs.core.Response;
6+
import jakarta.ws.rs.WebApplicationException;
7+
import jakarta.ws.rs.client.Client;
8+
import jakarta.ws.rs.client.ClientBuilder;
9+
import jakarta.ws.rs.client.Entity;
10+
import jakarta.ws.rs.client.WebTarget;
11+
import jakarta.ws.rs.core.Response;
1212

1313
import com.cyberark.conjur.api.AuthnProvider;
1414
import com.cyberark.conjur.api.Credentials;
@@ -80,8 +80,11 @@ public String login(){
8080

8181
private void init(final String username, final String password, final SSLContext sslContext) {
8282
final ClientBuilder builder = ClientBuilder.newBuilder()
83-
.register(new HttpBasicAuthFilter(username, password))
84-
.sslContext(sslContext);
83+
.register(new HttpBasicAuthFilter(username, password));
84+
85+
if(sslContext != null) {
86+
builder.sslContext(sslContext);
87+
}
8588

8689
Client client = builder.build();
8790
WebTarget root = client.target(endpoints.getAuthnUri());

src/main/java/com/cyberark/conjur/api/clients/ResourceClient.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.cyberark.conjur.api.clients;
22

33
import javax.net.ssl.SSLContext;
4-
import javax.ws.rs.WebApplicationException;
5-
import javax.ws.rs.client.Client;
6-
import javax.ws.rs.client.ClientBuilder;
7-
import javax.ws.rs.client.Entity;
8-
import javax.ws.rs.client.WebTarget;
9-
import javax.ws.rs.core.Response;
4+
import jakarta.ws.rs.WebApplicationException;
5+
import jakarta.ws.rs.client.Client;
6+
import jakarta.ws.rs.client.ClientBuilder;
7+
import jakarta.ws.rs.client.Entity;
8+
import jakarta.ws.rs.client.WebTarget;
9+
import jakarta.ws.rs.core.Response;
1010

1111
import com.cyberark.conjur.api.Credentials;
1212
import com.cyberark.conjur.api.Endpoints;
@@ -79,8 +79,12 @@ private Endpoints getEndpoints() {
7979

8080
private void init(Credentials credentials, SSLContext sslContext){
8181
ClientBuilder builder = ClientBuilder.newBuilder()
82-
.register(new TokenAuthFilter(new AuthnClient(credentials, endpoints, sslContext)))
83-
.sslContext(sslContext);
82+
.register(new TokenAuthFilter(new AuthnClient(credentials, endpoints, sslContext)));
83+
84+
85+
if(sslContext != null) {
86+
builder.sslContext(sslContext);
87+
}
8488

8589
Client client = builder.build();
8690

@@ -89,8 +93,11 @@ private void init(Credentials credentials, SSLContext sslContext){
8993

9094
private void init(Token token, SSLContext sslContext){
9195
ClientBuilder builder = ClientBuilder.newBuilder()
92-
.register(new TokenAuthFilter(new AuthnTokenClient(token)))
93-
.sslContext(sslContext);
96+
.register(new TokenAuthFilter(new AuthnTokenClient(token)));
97+
98+
if(sslContext != null) {
99+
builder.sslContext(sslContext);
100+
}
94101

95102
Client client = builder.build();
96103

src/main/java/com/cyberark/conjur/util/rs/HttpBasicAuthFilter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import org.apache.commons.codec.binary.Base64;
44

5-
import javax.ws.rs.client.ClientRequestContext;
6-
import javax.ws.rs.client.ClientRequestFilter;
7-
import javax.ws.rs.core.MultivaluedMap;
5+
import jakarta.ws.rs.client.ClientRequestContext;
6+
import jakarta.ws.rs.client.ClientRequestFilter;
7+
import jakarta.ws.rs.core.MultivaluedMap;
88
import java.io.IOException;
99
import java.nio.charset.Charset;
1010

src/main/java/com/cyberark/conjur/util/rs/JsonBodyReader.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
package com.cyberark.conjur.util.rs;
33

44
import com.google.gson.Gson;
5-
import javax.ws.rs.WebApplicationException;
6-
import javax.ws.rs.core.MediaType;
7-
import javax.ws.rs.core.MultivaluedMap;
8-
import javax.ws.rs.ext.MessageBodyReader;
9-
import javax.ws.rs.ext.Provider;
5+
import jakarta.ws.rs.WebApplicationException;
6+
import jakarta.ws.rs.core.MediaType;
7+
import jakarta.ws.rs.core.MultivaluedMap;
8+
import jakarta.ws.rs.ext.MessageBodyReader;
9+
import jakarta.ws.rs.ext.Provider;
1010
import java.io.*;
1111
import java.lang.annotation.Annotation;
1212
import java.lang.reflect.Type;

0 commit comments

Comments
 (0)