diff --git a/src/main/java/org/springframework/integration/aws/support/S3Session.java b/src/main/java/org/springframework/integration/aws/support/S3Session.java index 6849ade..6b1d40c 100644 --- a/src/main/java/org/springframework/integration/aws/support/S3Session.java +++ b/src/main/java/org/springframework/integration/aws/support/S3Session.java @@ -56,6 +56,9 @@ public class S3Session implements Session { public S3ObjectSummary[] list(String path) throws IOException { Assert.hasText(path, "'path' must not be empty String."); String[] bucketPrefix = path.split("/"); + Assert.state(bucketPrefix.length > 0 && bucketPrefix[0].length() >= 3, + "S3 bucket name must be at least 3 characters long."); + ListObjectsRequest listObjectsRequest = new ListObjectsRequest() .withBucketName(bucketPrefix[0]); if (bucketPrefix.length > 1) { @@ -82,6 +85,9 @@ public class S3Session implements Session { @Override public String[] listNames(String path) throws IOException { String[] bucketPrefix = path.split("/"); + Assert.state(bucketPrefix.length > 0 && bucketPrefix[0].length() >= 3, + "S3 bucket name must be at least 3 characters long."); + ListObjectsRequest listObjectsRequest = new ListObjectsRequest() .withBucketName(bucketPrefix[0]); if (bucketPrefix.length > 1) { @@ -209,8 +215,10 @@ public class S3Session implements Session { private static String[] splitPathToBucketAndKey(String path) { Assert.hasText(path, "'path' must not be empty String."); - Assert.state(path.indexOf('/') != -1, "'path' must in pattern [BUCKET/KEY]."); - return path.split("/"); + String[] bucketKey = path.split("/"); + Assert.state(bucketKey.length == 2, "'path' must in pattern [BUCKET/KEY]."); + Assert.state(bucketKey[0].length() >= 3, "S3 bucket name must be at least 3 characters long."); + return bucketKey; } }