From 38368c9bdaf1abbf5ed94b34b4e806cdbc5e7607 Mon Sep 17 00:00:00 2001 From: Sebastien Rosset Date: Tue, 14 Jul 2020 09:19:55 -0700 Subject: [PATCH] [Java][jersey2] Fix format of Date header in HTTP signature (#6925) * Use RFC 1123 date format for Date header in HTTP signature * Use RFC 1123 date format for Date header in HTTP signature --- .../Java/libraries/jersey2/auth/HttpSignatureAuth.mustache | 6 +++++- .../org/openapitools/client/auth/HttpSignatureAuth.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/auth/HttpSignatureAuth.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/auth/HttpSignatureAuth.mustache index 787bef3db0c..9ff63420883 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/auth/HttpSignatureAuth.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/jersey2/auth/HttpSignatureAuth.mustache @@ -12,10 +12,12 @@ import java.security.Key; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Base64; +import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.Map; import java.util.List; +import java.util.TimeZone; import java.security.spec.AlgorithmParameterSpec; import java.security.InvalidKeyException; @@ -236,7 +238,9 @@ public class HttpSignatureAuth implements Authentication { } if (headers.contains("date")) { - headerParams.put("date", new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US).format(new Date())); + SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US); + dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); + headerParams.put("date", dateFormat.format(Calendar.getInstance().getTime())); } if (headers.contains("digest")) { diff --git a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/auth/HttpSignatureAuth.java b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/auth/HttpSignatureAuth.java index a85f4ae3a82..9c3bac07935 100644 --- a/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/auth/HttpSignatureAuth.java +++ b/samples/openapi3/client/petstore/java/jersey2-java8/src/main/java/org/openapitools/client/auth/HttpSignatureAuth.java @@ -23,10 +23,12 @@ import java.security.Key; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Base64; +import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.Map; import java.util.List; +import java.util.TimeZone; import java.security.spec.AlgorithmParameterSpec; import java.security.InvalidKeyException; @@ -247,7 +249,9 @@ public class HttpSignatureAuth implements Authentication { } if (headers.contains("date")) { - headerParams.put("date", new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US).format(new Date())); + SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US); + dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); + headerParams.put("date", dateFormat.format(Calendar.getInstance().getTime())); } if (headers.contains("digest")) {