HADOOP-18368. Fixes ITestCustomSigner for access point names with '-' (#4634)

Contributed By: Ahmar Suhail <ahmarsu@amazon.co.uk>
This commit is contained in:
ahmarsuhail 2022-08-01 21:19:42 +01:00 committed by GitHub
parent 13fbfd5dea
commit 123d1aa884
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 5 deletions

View File

@ -20,7 +20,6 @@ package org.apache.hadoop.fs.s3a.auth;
import java.io.IOException;
import java.security.PrivilegedExceptionAction;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@ -228,10 +227,13 @@ public class ITestCustomSigner extends AbstractS3ATestBase {
if (service.contains("s3-accesspoint") || service.contains("s3-outposts")
|| service.contains("s3-object-lambda")) {
// If AccessPoint then bucketName is of format `accessPoint-accountId`;
String[] accessPointBits = hostBits[0].split("-");
int lastElem = accessPointBits.length - 1;
String accountId = accessPointBits[lastElem];
String accessPointName = String.join("", Arrays.copyOf(accessPointBits, lastElem));
String[] accessPointBits = bucketName.split("-");
String accountId = accessPointBits[accessPointBits.length - 1];
// Extract the access point name from bucket name. eg: if bucket name is
// test-custom-signer-<accountId>, get the access point name test-custom-signer by removing
// -<accountId> from the bucket name.
String accessPointName =
bucketName.substring(0, bucketName.length() - (accountId.length() + 1));
Arn arn = Arn.builder()
.withAccountId(accountId)
.withPartition("aws")