@@ -4402,10 +4402,16 @@ public ResolvedBucket resolveBucketLink(Pair<String, String> requested,
4402
4402
}
4403
4403
4404
4404
public ResolvedBucket resolveBucketLink (Pair <String , String > requested ,
4405
- boolean allowDanglingBuckets )
4405
+ boolean allowDanglingBuckets ) throws IOException {
4406
+ return resolveBucketLink (requested , allowDanglingBuckets , isAclEnabled );
4407
+ }
4408
+
4409
+ public ResolvedBucket resolveBucketLink (Pair <String , String > requested ,
4410
+ boolean allowDanglingBuckets ,
4411
+ boolean aclEnabled )
4406
4412
throws IOException {
4407
4413
OmBucketInfo resolved ;
4408
- if (isAclEnabled ) {
4414
+ if (aclEnabled ) {
4409
4415
UserGroupInformation ugi = getRemoteUser ();
4410
4416
if (getS3Auth () != null ) {
4411
4417
ugi = UserGroupInformation .createRemoteUser (
@@ -4416,15 +4422,26 @@ public ResolvedBucket resolveBucketLink(Pair<String, String> requested,
4416
4422
ugi ,
4417
4423
remoteIp != null ? remoteIp : omRpcAddress .getAddress (),
4418
4424
remoteIp != null ? remoteIp .getHostName () :
4419
- omRpcAddress .getHostName (), allowDanglingBuckets );
4425
+ omRpcAddress .getHostName (), allowDanglingBuckets , aclEnabled );
4420
4426
} else {
4421
4427
resolved = resolveBucketLink (requested , new HashSet <>(),
4422
- null , null , null , allowDanglingBuckets );
4428
+ null , null , null , allowDanglingBuckets , aclEnabled );
4423
4429
}
4424
4430
return new ResolvedBucket (requested .getLeft (), requested .getRight (),
4425
4431
resolved );
4426
4432
}
4427
4433
4434
+ private OmBucketInfo resolveBucketLink (
4435
+ Pair <String , String > volumeAndBucket ,
4436
+ Set <Pair <String , String >> visited ,
4437
+ UserGroupInformation userGroupInformation ,
4438
+ InetAddress remoteAddress ,
4439
+ String hostName ,
4440
+ boolean allowDanglingBuckets ) throws IOException {
4441
+ return resolveBucketLink (volumeAndBucket , visited , userGroupInformation , remoteAddress , hostName ,
4442
+ allowDanglingBuckets , isAclEnabled );
4443
+ }
4444
+
4428
4445
/**
4429
4446
* Resolves bucket symlinks. Read permission is required for following links.
4430
4447
*
@@ -4442,7 +4459,8 @@ private OmBucketInfo resolveBucketLink(
4442
4459
UserGroupInformation userGroupInformation ,
4443
4460
InetAddress remoteAddress ,
4444
4461
String hostName ,
4445
- boolean allowDanglingBuckets ) throws IOException {
4462
+ boolean allowDanglingBuckets ,
4463
+ boolean aclEnabled ) throws IOException {
4446
4464
4447
4465
String volumeName = volumeAndBucket .getLeft ();
4448
4466
String bucketName = volumeAndBucket .getRight ();
@@ -4465,7 +4483,7 @@ private OmBucketInfo resolveBucketLink(
4465
4483
DETECTED_LOOP_IN_BUCKET_LINKS );
4466
4484
}
4467
4485
4468
- if (isAclEnabled ) {
4486
+ if (aclEnabled ) {
4469
4487
final ACLType type = ACLType .READ ;
4470
4488
checkAcls (ResourceType .BUCKET , StoreType .OZONE , type ,
4471
4489
volumeName , bucketName , null , userGroupInformation ,
@@ -4476,7 +4494,7 @@ private OmBucketInfo resolveBucketLink(
4476
4494
return resolveBucketLink (
4477
4495
Pair .of (info .getSourceVolume (), info .getSourceBucket ()),
4478
4496
visited , userGroupInformation , remoteAddress , hostName ,
4479
- allowDanglingBuckets );
4497
+ allowDanglingBuckets , aclEnabled );
4480
4498
}
4481
4499
4482
4500
@ VisibleForTesting
0 commit comments