29
29
import software .amazon .awssdk .core .interceptor .Context ;
30
30
import software .amazon .awssdk .core .interceptor .ExecutionAttributes ;
31
31
import software .amazon .awssdk .http .SdkHttpRequest ;
32
+ import software .amazon .awssdk .services .s3 .model .DeleteObjectRequest ;
33
+ import software .amazon .awssdk .services .s3 .model .DeleteObjectsRequest ;
32
34
33
35
import org .slf4j .Logger ;
34
36
import org .slf4j .LoggerFactory ;
@@ -260,7 +262,8 @@ private class LoggingAuditSpan extends AbstractAuditSpanImpl {
260
262
261
263
/**
262
264
* Attach Range of data for GetObject Request.
263
- * @param request given get object request
265
+ * @param request the sdk request to be modified
266
+ * @param executionAttributes execution attributes for this request
264
267
*/
265
268
private void attachRangeFromRequest (SdkHttpRequest request ,
266
269
ExecutionAttributes executionAttributes ) {
@@ -370,12 +373,13 @@ public void set(final String key, final String value) {
370
373
public SdkHttpRequest modifyHttpRequest (Context .ModifyHttpRequest context ,
371
374
ExecutionAttributes executionAttributes ) {
372
375
SdkHttpRequest httpRequest = context .httpRequest ();
376
+ SdkRequest sdkRequest = context .request ();
373
377
374
- // attach range for GetObject requests
375
- attachRangeFromRequest (httpRequest , executionAttributes );
378
+ // attach range for GetObject requests
379
+ attachRangeFromRequest (httpRequest , executionAttributes );
376
380
377
- // for delete op, attach the number of files to delete
378
- attachDeleteKeySizeAttribute (request );
381
+ // for delete op, attach the number of files to delete
382
+ attachDeleteKeySizeAttribute (sdkRequest );
379
383
380
384
// build the referrer header
381
385
final String header = referrer .buildHttpReferrer ();
@@ -397,9 +401,9 @@ public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context,
397
401
}
398
402
399
403
// now see if the request is actually a blocked multipart request
400
- if (!isMultipartUploadEnabled && isRequestMultipartIO (httpRequest )) {
404
+ if (!isMultipartUploadEnabled && isRequestMultipartIO (sdkRequest )) {
401
405
throw new AuditOperationRejectedException ("Multipart IO request "
402
- + httpRequest + " rejected " + header );
406
+ + sdkRequest + " rejected " + header );
403
407
}
404
408
405
409
return httpRequest ;
@@ -409,16 +413,16 @@ public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context,
409
413
* For delete requests, attach delete key size as a referrer attribute.
410
414
*
411
415
* @param request the request object.
412
- * @param <T> type of the request.
413
416
*/
414
- private <T extends AmazonWebServiceRequest > void attachDeleteKeySizeAttribute (T request ) {
417
+ private void attachDeleteKeySizeAttribute (SdkRequest request ) {
418
+
415
419
if (request instanceof DeleteObjectsRequest ) {
416
- int keySize = ((DeleteObjectsRequest ) request ).getKeys ().size ();
417
- this .set (DELETE_KEYS_SIZE , String .valueOf (keySize ));
420
+ int keySize = ((DeleteObjectsRequest ) request ).delete (). objects ().size ();
421
+ referrer .set (DELETE_KEYS_SIZE , String .valueOf (keySize ));
418
422
} else if (request instanceof DeleteObjectRequest ) {
419
- String key = ((DeleteObjectRequest ) request ).getKey ();
423
+ String key = ((DeleteObjectRequest ) request ).key ();
420
424
if (key != null && key .length () > 0 ) {
421
- this .set (DELETE_KEYS_SIZE , "1" );
425
+ referrer .set (DELETE_KEYS_SIZE , "1" );
422
426
}
423
427
}
424
428
}
0 commit comments