From a1d00e4785f6ecd3a9a4fa981a8215948a75e8d4 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Wed, 4 Oct 2023 18:28:50 +0800 Subject: [PATCH] [Java][okhttp-gson] fix AWS auth issue (#16721) * fix samples * fix awsauth in okhttp gson java client * update github workflow --- .github/workflows/samples-java-client-jdk11.yaml | 1 + .../Java/libraries/okhttp-gson/auth/AWS4Auth.mustache | 6 +++++- .../Java/libraries/okhttp-gson/build.gradle.mustache | 3 +++ .../resources/Java/libraries/okhttp-gson/build.sbt.mustache | 3 +++ .../main/resources/Java/libraries/okhttp-gson/pom.mustache | 3 +-- samples/client/echo_api/java/okhttp-gson/pom.xml | 1 - samples/client/others/java/okhttp-gson-streaming/pom.xml | 1 - samples/client/petstore/java/okhttp-gson-3.1/pom.xml | 1 - .../petstore/java/okhttp-gson-awsv4signature/build.gradle | 1 + .../petstore/java/okhttp-gson-awsv4signature/build.sbt | 1 + .../client/petstore/java/okhttp-gson-awsv4signature/pom.xml | 3 +-- .../main/java/org/openapitools/client/auth/AWS4Auth.java | 6 +++++- .../petstore/java/okhttp-gson-dynamicOperations/pom.xml | 1 - .../petstore/java/okhttp-gson-group-parameter/pom.xml | 1 - .../petstore/java/okhttp-gson-nullable-required/pom.xml | 1 - .../petstore/java/okhttp-gson-parcelableModel/pom.xml | 1 - samples/client/petstore/java/okhttp-gson-swagger1/pom.xml | 1 - samples/client/petstore/java/okhttp-gson-swagger2/pom.xml | 1 - samples/client/petstore/java/okhttp-gson/pom.xml | 1 - 19 files changed, 21 insertions(+), 16 deletions(-) diff --git a/.github/workflows/samples-java-client-jdk11.yaml b/.github/workflows/samples-java-client-jdk11.yaml index 89b0f302128..8977db230f3 100644 --- a/.github/workflows/samples-java-client-jdk11.yaml +++ b/.github/workflows/samples-java-client-jdk11.yaml @@ -56,6 +56,7 @@ jobs: - samples/client/petstore/java/microprofile-rest-client-3.0-jackson-with-xml - samples/client/petstore/java/apache-httpclient - samples/client/petstore/java/feign + - samples/client/petstore/java/okhttp-gson-awsv4signature - samples/openapi3/client/petstore/java/jersey2-java8-special-characters - samples/openapi3/client/petstore/java/native - samples/client/petstore/java/okhttp-gson-swagger1/ diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/auth/AWS4Auth.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/auth/AWS4Auth.mustache index 5e11820e9a1..a9ee5ff646c 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/auth/AWS4Auth.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/auth/AWS4Auth.mustache @@ -6,16 +6,20 @@ import {{invokerPackage}}.Pair; import {{invokerPackage}}.ApiException; import java.io.ByteArrayInputStream; +import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.List; +import java.util.stream.Collectors; import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentials; import software.amazon.awssdk.auth.signer.Aws4Signer; import software.amazon.awssdk.auth.signer.params.Aws4SignerParams; +import software.amazon.awssdk.http.ContentStreamProvider; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.regions.Region; @@ -25,7 +29,7 @@ import okio.Buffer; {{>generatedAnnotation}} public class AWS4Auth implements Authentication { - private AWSCredentials credentials; + private AwsCredentials credentials; private String region; private String service; diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache index f4032d8f7d5..0d0e4cc9481 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.gradle.mustache @@ -121,6 +121,9 @@ dependencies { {{#openApiNullable}} implementation 'org.openapitools:jackson-databind-nullable:0.2.6' {{/openApiNullable}} + {{#withAWSV4Signature}} + implementation 'software.amazon.awssdk:auth:2.20.157' + {{/withAWSV4Signature}} {{#hasOAuthMethods}} implementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2' {{/hasOAuthMethods}} diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache index cf50c15c4e8..8d7bd5a68fe 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/build.sbt.mustache @@ -19,6 +19,9 @@ lazy val root = (project in file(".")). {{#openApiNullable}} "org.openapitools" % "jackson-databind-nullable" % "0.2.6", {{/openApiNullable}} + {{#withAWSV4Signature}} + "software.amazon.awssdk" % "auth" % "2.20.157", + {{/withAWSV4Signature}} {{#hasOAuthMethods}} "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.2", {{/hasOAuthMethods}} diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache index 3c1b453e316..2261a4025ea 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/pom.mustache @@ -375,12 +375,11 @@ ${jackson-databind-nullable-version} {{/openApiNullable}} - {{#withAWSV4Signature}} software.amazon.awssdk auth - 2.20.120 + 2.20.157 {{/withAWSV4Signature}} diff --git a/samples/client/echo_api/java/okhttp-gson/pom.xml b/samples/client/echo_api/java/okhttp-gson/pom.xml index 66a91a82652..47865e769e8 100644 --- a/samples/client/echo_api/java/okhttp-gson/pom.xml +++ b/samples/client/echo_api/java/okhttp-gson/pom.xml @@ -300,7 +300,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/others/java/okhttp-gson-streaming/pom.xml b/samples/client/others/java/okhttp-gson-streaming/pom.xml index a3e4248648c..f6bdcbd7b95 100644 --- a/samples/client/others/java/okhttp-gson-streaming/pom.xml +++ b/samples/client/others/java/okhttp-gson-streaming/pom.xml @@ -300,7 +300,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-3.1/pom.xml b/samples/client/petstore/java/okhttp-gson-3.1/pom.xml index ddf50ad183e..a6037898ab5 100644 --- a/samples/client/petstore/java/okhttp-gson-3.1/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-3.1/pom.xml @@ -305,7 +305,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-awsv4signature/build.gradle b/samples/client/petstore/java/okhttp-gson-awsv4signature/build.gradle index 50af067a5ab..504ebafa366 100644 --- a/samples/client/petstore/java/okhttp-gson-awsv4signature/build.gradle +++ b/samples/client/petstore/java/okhttp-gson-awsv4signature/build.gradle @@ -115,6 +115,7 @@ dependencies { implementation 'javax.ws.rs:jsr311-api:1.1.1' implementation 'javax.ws.rs:javax.ws.rs-api:2.1.1' implementation 'org.openapitools:jackson-databind-nullable:0.2.6' + implementation 'software.amazon.awssdk:auth:2.20.157' implementation group: 'org.apache.oltu.oauth2', name: 'org.apache.oltu.oauth2.client', version: '1.0.2' implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version" diff --git a/samples/client/petstore/java/okhttp-gson-awsv4signature/build.sbt b/samples/client/petstore/java/okhttp-gson-awsv4signature/build.sbt index 30f3633352c..b86eb7e785c 100644 --- a/samples/client/petstore/java/okhttp-gson-awsv4signature/build.sbt +++ b/samples/client/petstore/java/okhttp-gson-awsv4signature/build.sbt @@ -17,6 +17,7 @@ lazy val root = (project in file(".")). "javax.ws.rs" % "jsr311-api" % "1.1.1", "javax.ws.rs" % "javax.ws.rs-api" % "2.1.1", "org.openapitools" % "jackson-databind-nullable" % "0.2.6", + "software.amazon.awssdk" % "auth" % "2.20.157", "org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.2", "io.gsonfire" % "gson-fire" % "1.8.5" % "compile", "jakarta.annotation" % "jakarta.annotation-api" % "1.3.5" % "compile", diff --git a/samples/client/petstore/java/okhttp-gson-awsv4signature/pom.xml b/samples/client/petstore/java/okhttp-gson-awsv4signature/pom.xml index 8d77c41bf36..2816a3509d8 100644 --- a/samples/client/petstore/java/okhttp-gson-awsv4signature/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-awsv4signature/pom.xml @@ -305,11 +305,10 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - software.amazon.awssdk auth - 2.20.120 + 2.20.157 javax.ws.rs diff --git a/samples/client/petstore/java/okhttp-gson-awsv4signature/src/main/java/org/openapitools/client/auth/AWS4Auth.java b/samples/client/petstore/java/okhttp-gson-awsv4signature/src/main/java/org/openapitools/client/auth/AWS4Auth.java index 779e1605736..7ea08fba976 100644 --- a/samples/client/petstore/java/okhttp-gson-awsv4signature/src/main/java/org/openapitools/client/auth/AWS4Auth.java +++ b/samples/client/petstore/java/okhttp-gson-awsv4signature/src/main/java/org/openapitools/client/auth/AWS4Auth.java @@ -17,16 +17,20 @@ import org.openapitools.client.Pair; import org.openapitools.client.ApiException; import java.io.ByteArrayInputStream; +import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.List; +import java.util.stream.Collectors; import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentials; import software.amazon.awssdk.auth.signer.Aws4Signer; import software.amazon.awssdk.auth.signer.params.Aws4SignerParams; +import software.amazon.awssdk.http.ContentStreamProvider; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.regions.Region; @@ -36,7 +40,7 @@ import okio.Buffer; @javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen") public class AWS4Auth implements Authentication { - private AWSCredentials credentials; + private AwsCredentials credentials; private String region; private String service; diff --git a/samples/client/petstore/java/okhttp-gson-dynamicOperations/pom.xml b/samples/client/petstore/java/okhttp-gson-dynamicOperations/pom.xml index 5e90d1fb12e..7c1dde4a9db 100644 --- a/samples/client/petstore/java/okhttp-gson-dynamicOperations/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-dynamicOperations/pom.xml @@ -310,7 +310,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-group-parameter/pom.xml b/samples/client/petstore/java/okhttp-gson-group-parameter/pom.xml index 570257c5f84..39726ef1a5a 100644 --- a/samples/client/petstore/java/okhttp-gson-group-parameter/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-group-parameter/pom.xml @@ -305,7 +305,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-nullable-required/pom.xml b/samples/client/petstore/java/okhttp-gson-nullable-required/pom.xml index 7550ed608dd..5e1c8d86654 100644 --- a/samples/client/petstore/java/okhttp-gson-nullable-required/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-nullable-required/pom.xml @@ -305,7 +305,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml b/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml index c3f34dcbd18..7d329eddb5c 100644 --- a/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-parcelableModel/pom.xml @@ -312,7 +312,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-swagger1/pom.xml b/samples/client/petstore/java/okhttp-gson-swagger1/pom.xml index 1a1e48ea451..ca06f5bb59f 100644 --- a/samples/client/petstore/java/okhttp-gson-swagger1/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-swagger1/pom.xml @@ -310,7 +310,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson-swagger2/pom.xml b/samples/client/petstore/java/okhttp-gson-swagger2/pom.xml index b2db3f3da48..3ef2bee4970 100644 --- a/samples/client/petstore/java/okhttp-gson-swagger2/pom.xml +++ b/samples/client/petstore/java/okhttp-gson-swagger2/pom.xml @@ -310,7 +310,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api diff --git a/samples/client/petstore/java/okhttp-gson/pom.xml b/samples/client/petstore/java/okhttp-gson/pom.xml index a50f71b2408..7831b90f739 100644 --- a/samples/client/petstore/java/okhttp-gson/pom.xml +++ b/samples/client/petstore/java/okhttp-gson/pom.xml @@ -305,7 +305,6 @@ jackson-databind-nullable ${jackson-databind-nullable-version} - javax.ws.rs jsr311-api