This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new ae6c09b827 HDDS-12302. Fix parameter number warning in SignatureInfo 
(#7863)
ae6c09b827 is described below

commit ae6c09b8276c3d73a828db127094a65ea7cd23a8
Author: Peter Lee <[email protected]>
AuthorDate: Thu Feb 13 18:47:21 2025 +0800

    HDDS-12302. Fix parameter number warning in SignatureInfo (#7863)
---
 .../ozone/s3/signature/AWSSignatureProcessor.java  |   5 +-
 .../s3/signature/AuthorizationV2HeaderParser.java  |  15 +-
 .../s3/signature/AuthorizationV4HeaderParser.java  |  21 ++-
 .../s3/signature/AuthorizationV4QueryParser.java   |  21 ++-
 .../hadoop/ozone/s3/signature/SignatureInfo.java   | 157 ++++++++++++++-------
 5 files changed, 130 insertions(+), 89 deletions(-)

diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AWSSignatureProcessor.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AWSSignatureProcessor.java
index d517154de8..2135d374af 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AWSSignatureProcessor.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AWSSignatureProcessor.java
@@ -90,10 +90,7 @@ public SignatureInfo parseSignature() throws OS3Exception {
       }
     }
     if (signatureInfo == null) {
-      signatureInfo = new SignatureInfo(
-          Version.NONE,
-          "", "", "", "", "", "", "", false
-      );
+      signatureInfo = new SignatureInfo.Builder(Version.NONE).build();
     }
     signatureInfo.setUnfilteredURI(
         context.getUriInfo().getRequestUri().getPath());
diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV2HeaderParser.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV2HeaderParser.java
index 1384456005..1c3c15d20e 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV2HeaderParser.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV2HeaderParser.java
@@ -66,16 +66,9 @@ public SignatureInfo parseSignature() throws 
MalformedResourceException {
     if (isBlank(accessKeyID) || isBlank(signature)) {
       throw new MalformedResourceException(authHeader);
     }
-    return new SignatureInfo(
-        Version.V2,
-        "",
-        "",
-        accessKeyID,
-        signature,
-        "",
-        "",
-        "",
-        false
-    );
+    return new SignatureInfo.Builder(Version.V2)
+        .setAwsAccessId(accessKeyID)
+        .setSignature(signature)
+        .build();
   }
 }
diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4HeaderParser.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4HeaderParser.java
index d4b648bd00..df43948198 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4HeaderParser.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4HeaderParser.java
@@ -91,17 +91,16 @@ public SignatureInfo parseSignature() throws 
MalformedResourceException {
     Credential credentialObj = parseCredentials(split[0]);
     String signedHeaders = parseSignedHeaders(split[1]);
     String signature = parseSignature(split[2]);
-    return new SignatureInfo(
-        Version.V4,
-        credentialObj.getDate(),
-        dateHeader,
-        credentialObj.getAccessKeyID(),
-        signature,
-        signedHeaders,
-        credentialObj.createScope(),
-        algorithm,
-        true
-    );
+    return new SignatureInfo.Builder(Version.V4)
+        .setDate(credentialObj.getDate())
+        .setDateTime(dateHeader)
+        .setAwsAccessId(credentialObj.getAccessKeyID())
+        .setSignature(signature)
+        .setSignedHeaders(signedHeaders)
+        .setCredentialScope(credentialObj.createScope())
+        .setAlgorithm(algorithm)
+        .setSignPayload(true)
+        .build();
   }
 
   /**
diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4QueryParser.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4QueryParser.java
index 98e53fc570..0596af3953 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4QueryParser.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/AuthorizationV4QueryParser.java
@@ -91,17 +91,16 @@ public SignatureInfo parseSignature() throws 
MalformedResourceException {
     validateSignedHeaders();
     validateSignature();
 
-    return new SignatureInfo(
-        Version.V4,
-        credential.getDate(),
-        queryParameters.get("X-Amz-Date"),
-        credential.getAccessKeyID(),
-        queryParameters.get("X-Amz-Signature"),
-        queryParameters.get("X-Amz-SignedHeaders"),
-        credential.createScope(),
-        queryParameters.get("X-Amz-Algorithm"),
-        false
-    );
+    return new SignatureInfo.Builder(Version.V4)
+        .setDate(credential.getDate())
+        .setDateTime(queryParameters.get("X-Amz-Date"))
+        .setAwsAccessId(credential.getAccessKeyID())
+        .setSignature(queryParameters.get("X-Amz-Signature"))
+        .setSignedHeaders(queryParameters.get("X-Amz-SignedHeaders"))
+        .setCredentialScope(credential.createScope())
+        .setAlgorithm(queryParameters.get("X-Amz-Algorithm"))
+        .setSignPayload(false)
+        .build();
   }
 
   /**
diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/SignatureInfo.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/SignatureInfo.java
index d1db38a50a..e251ac46f7 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/SignatureInfo.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/signature/SignatureInfo.java
@@ -58,58 +58,36 @@ public class SignatureInfo {
 
   public SignatureInfo() { }
 
-  @SuppressWarnings("checkstyle:ParameterNumber")
-  public SignatureInfo(
-      Version version,
-      String date,
-      String dateTime,
-      String awsAccessId,
-      String signature,
-      String signedHeaders,
-      String credentialScope,
-      String algorithm,
-      boolean signPayload
-  ) {
-    initialize(version, date, dateTime, awsAccessId, signature, signedHeaders,
-        credentialScope, algorithm, signPayload, null, null);
-  }
-
-  public void initialize(
-      SignatureInfo signatureInfo
-  ) {
-    initialize(signatureInfo.getVersion(), signatureInfo.getDate(),
-        signatureInfo.getDateTime(), signatureInfo.getAwsAccessId(),
-        signatureInfo.getSignature(), signatureInfo.getSignedHeaders(),
-        signatureInfo.getCredentialScope(), signatureInfo.getAlgorithm(),
-        signatureInfo.isSignPayload(), signatureInfo.getUnfilteredURI(),
-        signatureInfo.getStringToSign());
-  }
-
-  @SuppressWarnings({"checkstyle:ParameterNumber", "checkstyle:HiddenField"})
-  public void initialize(
-      Version version,
-      String date,
-      String dateTime,
-      String awsAccessId,
-      String signature,
-      String signedHeaders,
-      String credentialScope,
-      String algorithm,
-      boolean signPayload,
-      String uri,
-      String stringToSign
-  ) {
-    this.version = version;
-    this.date = date;
-    this.dateTime = dateTime;
-    this.awsAccessId = awsAccessId;
-    this.signature = signature;
-    this.signedHeaders = signedHeaders;
-    this.credentialScope = credentialScope;
-    this.algorithm = algorithm;
-    this.signPayload = signPayload;
-    this.unfilteredURI = uri;
-    this.stringToSign = stringToSign;
+  private SignatureInfo(Builder b) {
+    initialize(b);
+  }
+
+  public void initialize(SignatureInfo signatureInfo) {
+    initialize(new Builder(signatureInfo.getVersion())
+        .setDate(signatureInfo.getDate())
+        .setDateTime(signatureInfo.getDateTime())
+        .setAwsAccessId(signatureInfo.getAwsAccessId())
+        .setSignature(signatureInfo.getSignature())
+        .setSignedHeaders(signatureInfo.getSignedHeaders())
+        .setCredentialScope(signatureInfo.getCredentialScope())
+        .setAlgorithm(signatureInfo.getAlgorithm())
+        .setSignPayload(signatureInfo.isSignPayload())
+        .setUnfilteredURI(signatureInfo.getUnfilteredURI())
+        .setStringToSign(signatureInfo.getStringToSign()));
+  }
+
+  private void initialize(Builder b) {
+    this.version = b.version;
+    this.date = b.date;
+    this.dateTime = b.dateTime;
+    this.awsAccessId = b.awsAccessId;
+    this.signature = b.signature;
+    this.signedHeaders = b.signedHeaders;
+    this.credentialScope = b.credentialScope;
+    this.algorithm = b.algorithm;
+    this.signPayload = b.signPayload;
+    this.unfilteredURI = b.unfilteredURI;
+    this.stringToSign = b.stringToSign;
   }
 
   public String getAwsAccessId() {
@@ -170,4 +148,79 @@ public void setStrToSign(String strToSign) {
   public enum Version {
     NONE, V4, V2;
   }
+
+  /**
+   * Builder class for SignatureInfo.
+   */
+  public static class Builder {
+    private Version version;
+    private String date = "";
+    private String dateTime = "";
+    private String awsAccessId = "";
+    private String signature = "";
+    private String signedHeaders = "";
+    private String credentialScope = "";
+    private String algorithm = "";
+    private boolean signPayload = true;
+    private String unfilteredURI = null;
+    private String stringToSign = null;
+
+    public Builder(Version version) {
+      this.version = version;
+    }
+
+    public Builder setDate(String date) {
+      this.date = date;
+      return this;
+    }
+
+    public Builder setDateTime(String dateTime) {
+      this.dateTime = dateTime;
+      return this;
+    }
+
+    public Builder setAwsAccessId(String awsAccessId) {
+      this.awsAccessId = awsAccessId;
+      return this;
+    }
+
+    public Builder setSignature(String signature) {
+      this.signature = signature;
+      return this;
+    }
+
+    public Builder setSignedHeaders(String signedHeaders) {
+      this.signedHeaders = signedHeaders;
+      return this;
+    }
+
+    public Builder setCredentialScope(String credentialScope) {
+      this.credentialScope = credentialScope;
+      return this;
+    }
+
+    public Builder setAlgorithm(String algorithm) {
+      this.algorithm = algorithm;
+      return this;
+    }
+
+    public Builder setSignPayload(boolean signPayload) {
+      this.signPayload = signPayload;
+      return this;
+    }
+
+    public Builder setUnfilteredURI(String uri) {
+      this.unfilteredURI = uri;
+      return this;
+    }
+
+    public Builder setStringToSign(String stringToSign) {
+      this.stringToSign = stringToSign;
+      return this;
+    }
+
+    public SignatureInfo build() {
+      return new SignatureInfo(this);
+    }
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to