Skip to content

Commit 890fc0a

Browse files
RANGER-4076: Migrate from com.sun.jersey 1.x to glassfish jersey 2.x
1 parent 58405b3 commit 890fc0a

File tree

170 files changed

+7270
-3881
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

170 files changed

+7270
-3881
lines changed

agents-audit/core/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,5 @@
106106
<artifactId>mockito-core</artifactId>
107107
<scope>test</scope>
108108
</dependency>
109-
<dependency>
110-
<groupId>org.testng</groupId>
111-
<artifactId>testng</artifactId>
112-
<scope>test</scope>
113-
</dependency>
114109
</dependencies>
115110
</project>

agents-audit/dest-auditserver/pom.xml

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@
3737
<artifactId>jackson-jaxrs-json-provider</artifactId>
3838
<version>${fasterxml.jackson.version}</version>
3939
</dependency>
40+
<dependency>
41+
<groupId>javax.ws.rs</groupId>
42+
<artifactId>javax.ws.rs-api</artifactId>
43+
<version>${javax.ws.rs-api.version}</version>
44+
</dependency>
4045
<dependency>
4146
<groupId>org.apache.ranger</groupId>
4247
<artifactId>ranger-audit-core</artifactId>
@@ -47,6 +52,21 @@
4752
<artifactId>ranger-plugins-common</artifactId>
4853
<version>${project.version}</version>
4954
</dependency>
55+
<dependency>
56+
<groupId>org.glassfish.jersey.core</groupId>
57+
<artifactId>jersey-client</artifactId>
58+
<version>${jersey-client.version}</version>
59+
</dependency>
60+
<dependency>
61+
<groupId>org.glassfish.jersey.inject</groupId>
62+
<artifactId>jersey-hk2</artifactId>
63+
<version>${jersey-client.version}</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.glassfish.jersey.media</groupId>
67+
<artifactId>jersey-media-json-jackson</artifactId>
68+
<version>${jersey-client.version}</version>
69+
</dependency>
5070
<dependency>
5171
<groupId>org.slf4j</groupId>
5272
<artifactId>slf4j-api</artifactId>
@@ -60,10 +80,5 @@
6080
<version>${slf4j.version}</version>
6181
<scope>test</scope>
6282
</dependency>
63-
<dependency>
64-
<groupId>org.testng</groupId>
65-
<artifactId>testng</artifactId>
66-
<scope>test</scope>
67-
</dependency>
6883
</dependencies>
6984
</project>

agents-audit/dest-auditserver/src/main/java/org/apache/ranger/audit/destination/RangerAuditServerDestination.java

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,23 @@
1919

2020
package org.apache.ranger.audit.destination;
2121

22-
import com.sun.jersey.api.client.ClientResponse;
23-
import com.sun.jersey.api.client.WebResource;
2422
import org.apache.commons.lang3.StringUtils;
2523
import org.apache.hadoop.conf.Configuration;
2624
import org.apache.hadoop.security.UserGroupInformation;
2725
import org.apache.http.HttpStatus;
2826
import org.apache.ranger.audit.model.AuditEventBase;
2927
import org.apache.ranger.audit.model.AuthzAuditEvent;
3028
import org.apache.ranger.audit.provider.MiscUtil;
29+
import org.apache.ranger.plugin.authn.DefaultJwtProvider;
3130
import org.apache.ranger.plugin.util.RangerRESTClient;
3231
import org.slf4j.Logger;
3332
import org.slf4j.LoggerFactory;
3433

34+
import javax.ws.rs.client.Entity;
35+
import javax.ws.rs.client.WebTarget;
36+
import javax.ws.rs.core.MediaType;
37+
import javax.ws.rs.core.Response;
38+
3539
import java.security.PrivilegedExceptionAction;
3640
import java.util.Collection;
3741
import java.util.HashMap;
@@ -85,6 +89,10 @@ public void init(Properties props, String propPrefix) {
8589

8690
this.restClient = new RangerRESTClient(url, sslConfigFileName, config);
8791

92+
if (AUTH_TYPE_JWT.equalsIgnoreCase(authType)) {
93+
this.restClient.setJwtProvider(new DefaultJwtProvider("ranger.plugin.policy.rest.client", config));
94+
}
95+
8896
this.restClient.setRestClientConnTimeOutMs(connTimeoutMs);
8997
this.restClient.setRestClientReadTimeOutMs(readTimeoutMs);
9098
this.restClient.setMaxRetryAttempts(maxRetryAttempts);
@@ -180,6 +188,8 @@ private boolean sendBatch(Collection<AuditEventBase> events, RangerRESTClient re
180188
queryParams.put(QUERY_PARAM_APP_ID, appId);
181189
}
182190

191+
Response response = null;
192+
183193
try {
184194
final UserGroupInformation user = MiscUtil.getUGILoginUser();
185195
final boolean isSecureMode = isKerberosAuthenticated();
@@ -190,10 +200,8 @@ private boolean sendBatch(Collection<AuditEventBase> events, RangerRESTClient re
190200
LOG.debug("Sending audit batch of {} events. SecureMode: {}, User: {}", events.size(), isSecureMode, user != null ? user.getUserName() : "null");
191201
}
192202

193-
final ClientResponse response;
194-
195203
if (isSecureMode) {
196-
response = MiscUtil.executePrivilegedAction((PrivilegedExceptionAction<ClientResponse>) () -> {
204+
response = MiscUtil.executePrivilegedAction((PrivilegedExceptionAction<Response>) () -> {
197205
try {
198206
return postAuditEvents(restClient, queryParams, events);
199207
} catch (Exception e) {
@@ -210,7 +218,7 @@ private boolean sendBatch(Collection<AuditEventBase> events, RangerRESTClient re
210218

211219
if (status == HttpStatus.SC_OK) {
212220
if (LOG.isDebugEnabled()) {
213-
LOG.debug("Audit batch sent successfully. {} events delivered. Response: {}", events.size(), response.getEntity(String.class));
221+
LOG.debug("Audit batch sent successfully. {} events delivered. Response: {}", events.size(), response.readEntity(String.class));
214222
}
215223

216224
ret = true;
@@ -219,7 +227,7 @@ private boolean sendBatch(Collection<AuditEventBase> events, RangerRESTClient re
219227

220228
try {
221229
if (response.hasEntity()) {
222-
errorBody = response.getEntity(String.class);
230+
errorBody = response.readEntity(String.class);
223231
}
224232
} catch (Exception e) {
225233
LOG.debug("Failed to read error response body", e);
@@ -242,27 +250,33 @@ private boolean sendBatch(Collection<AuditEventBase> events, RangerRESTClient re
242250
LOG.error("Failed to send audit batch of {} events. Error: {}", events.size(), e.getMessage(), e);
243251

244252
ret = false;
253+
} finally {
254+
if (response != null) {
255+
try {
256+
response.close();
257+
} catch (Exception e) {
258+
LOG.debug("Error closing HTTP response", e);
259+
}
260+
}
245261
}
246262

247263
return ret;
248264
}
249265

250-
private ClientResponse postAuditEvents(RangerRESTClient restClient, Map<String, String> params, Collection<AuditEventBase> events) {
266+
private Response postAuditEvents(RangerRESTClient restClient, Map<String, String> params, Collection<AuditEventBase> events) {
251267
LOG.debug("Posting {} audit events to {}", events.size(), REST_RELATIVE_PATH_POST);
252268

253-
WebResource webResource = restClient.getResource(REST_RELATIVE_PATH_POST);
269+
WebTarget target = restClient.getResource(REST_RELATIVE_PATH_POST);
254270

255271
if (params != null && !params.isEmpty()) {
256272
for (Map.Entry<String, String> entry : params.entrySet()) {
257-
webResource = webResource.queryParam(entry.getKey(), entry.getValue());
273+
target = target.queryParam(entry.getKey(), entry.getValue());
258274
}
259275
}
260276

261-
return webResource
262-
.accept("application/json")
263-
.type("application/json")
264-
.entity(events)
265-
.post(ClientResponse.class);
277+
return target.request(MediaType.APPLICATION_JSON_TYPE)
278+
.accept(MediaType.APPLICATION_JSON_TYPE)
279+
.post(Entity.entity(events, MediaType.APPLICATION_JSON_TYPE));
266280
}
267281

268282
private static Configuration createRESTClientConfiguration(Properties props, String propPrefix, String authType) {

agents-audit/dest-cloudwatch/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,5 @@
5252
<artifactId>slf4j-api</artifactId>
5353
<version>${slf4j.version}</version>
5454
</dependency>
55-
56-
<!-- Test -->
57-
<dependency>
58-
<groupId>org.testng</groupId>
59-
<artifactId>testng</artifactId>
60-
<scope>test</scope>
61-
</dependency>
6255
</dependencies>
6356
</project>

agents-audit/dest-es/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,5 @@
207207
<artifactId>slf4j-api</artifactId>
208208
<version>${slf4j.version}</version>
209209
</dependency>
210-
211-
<!-- Test -->
212-
<dependency>
213-
<groupId>org.testng</groupId>
214-
<artifactId>testng</artifactId>
215-
<scope>test</scope>
216-
</dependency>
217210
</dependencies>
218211
</project>

agents-audit/dest-hdfs/pom.xml

Lines changed: 112 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,31 @@
3232
<securesm.version>1.2</securesm.version>
3333
</properties>
3434
<dependencies>
35+
<dependency>
36+
<groupId>jakarta.activation</groupId>
37+
<artifactId>jakarta.activation-api</artifactId>
38+
<version>${jakarta.activation-api.version}</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>jakarta.ws.rs</groupId>
42+
<artifactId>jakarta.ws.rs-api</artifactId>
43+
<version>${jakarta.ws.rs-api.version}</version>
44+
</dependency>
45+
<dependency>
46+
<groupId>javax.servlet</groupId>
47+
<artifactId>javax.servlet-api</artifactId>
48+
<version>${javax.servlet.version}</version>
49+
</dependency>
50+
<dependency>
51+
<groupId>joda-time</groupId>
52+
<artifactId>joda-time</artifactId>
53+
<version>${joda.time.version}</version>
54+
</dependency>
55+
<dependency>
56+
<groupId>org.apache.commons</groupId>
57+
<artifactId>commons-lang3</artifactId>
58+
<version>${commons.lang3.version}</version>
59+
</dependency>
3560
<dependency>
3661
<groupId>org.apache.hadoop</groupId>
3762
<artifactId>hadoop-client-api</artifactId>
@@ -53,11 +78,96 @@
5378
<artifactId>slf4j-api</artifactId>
5479
<version>${slf4j.version}</version>
5580
</dependency>
81+
<dependency>
82+
<groupId>javax.inject</groupId>
83+
<artifactId>javax.inject</artifactId>
84+
<version>${javax.inject.version}</version>
85+
<scope>runtime</scope>
86+
</dependency>
87+
<dependency>
88+
<groupId>org.glassfish.hk2</groupId>
89+
<artifactId>class-model</artifactId>
90+
<version>${glassfish.hk2.version}</version>
91+
<scope>runtime</scope>
92+
</dependency>
93+
<dependency>
94+
<groupId>org.glassfish.hk2</groupId>
95+
<artifactId>hk2</artifactId>
96+
<version>${glassfish.hk2.version}</version>
97+
<scope>runtime</scope>
98+
</dependency>
99+
<dependency>
100+
<groupId>org.glassfish.hk2</groupId>
101+
<artifactId>hk2-api</artifactId>
102+
<version>${glassfish.hk2.version}</version>
103+
<scope>runtime</scope>
104+
</dependency>
105+
<dependency>
106+
<groupId>org.glassfish.hk2</groupId>
107+
<artifactId>hk2-core</artifactId>
108+
<version>${glassfish.hk2.version}</version>
109+
<scope>runtime</scope>
110+
</dependency>
111+
<dependency>
112+
<groupId>org.glassfish.hk2</groupId>
113+
<artifactId>hk2-locator</artifactId>
114+
<version>${glassfish.hk2.version}</version>
115+
<scope>runtime</scope>
116+
</dependency>
117+
<dependency>
118+
<groupId>org.glassfish.hk2</groupId>
119+
<artifactId>hk2-runlevel</artifactId>
120+
<version>${glassfish.hk2.version}</version>
121+
<scope>runtime</scope>
122+
</dependency>
123+
<dependency>
124+
<groupId>org.glassfish.hk2</groupId>
125+
<artifactId>hk2-utils</artifactId>
126+
<version>${glassfish.hk2.version}</version>
127+
<scope>runtime</scope>
128+
</dependency>
129+
<dependency>
130+
<groupId>org.glassfish.hk2.external</groupId>
131+
<artifactId>jakarta.inject</artifactId>
132+
<version>${glassfish.hk2.version}</version>
133+
<scope>runtime</scope>
134+
</dependency>
135+
<dependency>
136+
<groupId>org.glassfish.jersey.core</groupId>
137+
<artifactId>jersey-client</artifactId>
138+
<version>${jersey-client.version}</version>
139+
<scope>runtime</scope>
140+
</dependency>
141+
<dependency>
142+
<groupId>org.glassfish.jersey.core</groupId>
143+
<artifactId>jersey-common</artifactId>
144+
<version>${jersey-client.version}</version>
145+
<scope>runtime</scope>
146+
</dependency>
147+
<dependency>
148+
<groupId>org.glassfish.jersey.ext</groupId>
149+
<artifactId>jersey-entity-filtering</artifactId>
150+
<version>${jersey-client.version}</version>
151+
<scope>runtime</scope>
152+
</dependency>
153+
<dependency>
154+
<groupId>org.glassfish.jersey.inject</groupId>
155+
<artifactId>jersey-hk2</artifactId>
156+
<version>${jersey-client.version}</version>
157+
<scope>runtime</scope>
158+
</dependency>
159+
<dependency>
160+
<groupId>org.glassfish.jersey.media</groupId>
161+
<artifactId>jersey-media-json-jackson</artifactId>
162+
<version>${jersey-client.version}</version>
163+
<scope>runtime</scope>
164+
</dependency>
56165

57166
<!-- Test -->
58167
<dependency>
59-
<groupId>org.testng</groupId>
60-
<artifactId>testng</artifactId>
168+
<groupId>org.slf4j</groupId>
169+
<artifactId>log4j-over-slf4j</artifactId>
170+
<version>${slf4j.version}</version>
61171
<scope>test</scope>
62172
</dependency>
63173
</dependencies>

agents-audit/dest-kafka/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,5 @@
5757
<artifactId>slf4j-api</artifactId>
5858
<version>${slf4j.version}</version>
5959
</dependency>
60-
61-
<!-- Test -->
62-
<dependency>
63-
<groupId>org.testng</groupId>
64-
<artifactId>testng</artifactId>
65-
<scope>test</scope>
66-
</dependency>
6760
</dependencies>
6861
</project>

agents-audit/dest-log4j/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,5 @@
4242
<artifactId>slf4j-api</artifactId>
4343
<version>${slf4j.version}</version>
4444
</dependency>
45-
46-
<!-- Test -->
47-
<dependency>
48-
<groupId>org.testng</groupId>
49-
<artifactId>testng</artifactId>
50-
<scope>test</scope>
51-
</dependency>
5245
</dependencies>
5346
</project>

agents-audit/dest-solr/pom.xml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,30 @@
115115
<artifactId>slf4j-api</artifactId>
116116
<version>${slf4j.version}</version>
117117
</dependency>
118+
<dependency>
119+
<groupId>jakarta.ws.rs</groupId>
120+
<artifactId>jakarta.ws.rs-api</artifactId>
121+
<version>${jakarta.ws.rs-api.version}</version>
122+
<scope>provided</scope>
123+
</dependency>
124+
<dependency>
125+
<groupId>org.glassfish.jersey.core</groupId>
126+
<artifactId>jersey-client</artifactId>
127+
<version>${jersey-client.version}</version>
128+
<scope>provided</scope>
129+
</dependency>
130+
<dependency>
131+
<groupId>org.glassfish.jersey.media</groupId>
132+
<artifactId>jersey-media-json-jackson</artifactId>
133+
<version>${jersey-client.version}</version>
134+
<scope>provided</scope>
135+
</dependency>
118136

119137
<!-- Test -->
120138
<dependency>
121-
<groupId>org.testng</groupId>
122-
<artifactId>testng</artifactId>
139+
<groupId>org.slf4j</groupId>
140+
<artifactId>log4j-over-slf4j</artifactId>
141+
<version>${slf4j.version}</version>
123142
<scope>test</scope>
124143
</dependency>
125144
</dependencies>

0 commit comments

Comments
 (0)