From ff551248a197fd363cdaaa3695a6ba8d8046fae8 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Mon, 5 Jan 2015 13:26:47 -0800 Subject: [PATCH] Fail V4 signature requests with InvalidArgument This allows V4 clients like s3cmd to retry with V2 signatures. References #24. --- src/main/java/org/gaul/s3proxy/S3ProxyHandler.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java index 852f967..6e8143a 100644 --- a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java +++ b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java @@ -207,6 +207,12 @@ final class S3ProxyHandler extends AbstractHandler { } headerIdentity = values[0]; headerSignature = values[1]; + } else if (headerAuthorization != null && + headerAuthorization.startsWith("AWS4-HMAC-SHA256 ")) { + // Fail V4 signature requests to allow clients to retry with V2. + sendSimpleErrorResponse(response, S3ErrorCode.INVALID_ARGUMENT); + baseRequest.setHandled(true); + return; } String parameterIdentity = request.getParameter("AWSAccessKeyId"); String parameterSignature = request.getParameter("Signature");