From 561335f5e57e0733fa2e7ca3060cda78b8f3010a Mon Sep 17 00:00:00 2001 From: Jaroslaw Zawila Date: Sat, 8 Feb 2020 22:08:45 +0000 Subject: [PATCH] Add support for bearer token scala-akka #5067 (#5069) * Add support for bearer token scala-akka #5067 * Update api.mustache Include master's isKeyInCookie support * [scala-akka] Update bearer token feature in doc Co-authored-by: Jim Schubert Co-authored-by: Jaroslaw Zawila --- docs/generators/scala-akka.md | 2 +- .../openapitools/codegen/languages/ScalaAkkaClientCodegen.java | 3 ++- .../src/main/resources/scala-akka-client/api.mustache | 3 +-- .../src/main/resources/scala-akka-client/apiInvoker.mustache | 2 ++ .../main/resources/scala-akka-client/methodParameters.mustache | 2 +- .../src/main/resources/scala-akka-client/requests.mustache | 2 ++ 6 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/generators/scala-akka.md b/docs/generators/scala-akka.md index 9ffaf33e713..8fffdba5bd1 100644 --- a/docs/generators/scala-akka.md +++ b/docs/generators/scala-akka.md @@ -199,7 +199,7 @@ sidebar_label: scala-akka |BasicAuth|✓|OAS2,OAS3 |ApiKey|✓|OAS2,OAS3 |OpenIDConnect|✗|OAS3 -|BearerToken|✗|OAS3 +|BearerToken|✓|OAS3 |OAuth2_Implicit|✗|OAS2,OAS3 |OAuth2_Password|✗|OAS2,OAS3 |OAuth2_ClientCredentials|✗|OAS2,OAS3 diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java index fa18c5432fa..7b3938edf41 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaAkkaClientCodegen.java @@ -62,7 +62,8 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code .wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON, WireFormatFeature.XML, WireFormatFeature.Custom)) .securityFeatures(EnumSet.of( SecurityFeature.BasicAuth, - SecurityFeature.ApiKey + SecurityFeature.ApiKey, + SecurityFeature.BearerToken )) .excludeGlobalFeatures( GlobalFeature.XMLStructureDefinitions, diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/api.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/api.mustache index 506776b33a0..677d91b14ae 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-client/api.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/api.mustache @@ -23,8 +23,7 @@ class {{classname}}(baseUrl: String) { def {{operationId}}({{>methodParameters}}): ApiRequest[{{>operationReturnType}}] = ApiRequest[{{>operationReturnType}}](ApiMethods.{{httpMethod.toUpperCase}}, baseUrl, "{{{path}}}", {{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}{{^consumes}}"application/json"{{/consumes}}) {{#authMethods}}{{#isApiKey}}.withApiKey(apiKey, "{{keyParamName}}", {{#isKeyInQuery}}QUERY{{/isKeyInQuery}}{{#isKeyInHeader}}HEADER{{/isKeyInHeader}}{{#isKeyInCookie}}COOKIE{{/isKeyInCookie}}) - {{/isApiKey}}{{#isBasic}}.withCredentials(basicAuth) - {{/isBasic}}{{/authMethods}}{{#bodyParam}}.withBody({{paramName}}) + {{/isApiKey}}{{#isBasic}}{{#isBasicBasic}}.withCredentials(basicAuth){{/isBasicBasic}}{{#isBasicBearer}}.withCredentials(bearerToken){{/isBasicBearer}}{{/isBasic}}{{/authMethods}}{{#bodyParam}}.withBody({{paramName}}) {{/bodyParam}}{{#formParams}}.withFormParam({{>paramCreation}}) {{/formParams}}{{#queryParams}}.withQueryParam({{>paramCreation}}) {{/queryParams}}{{#pathParams}}.withPathParam({{>paramCreation}}) diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/apiInvoker.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/apiInvoker.mustache index f987e857a3b..0ed5b0ca230 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-client/apiInvoker.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/apiInvoker.mustache @@ -118,6 +118,8 @@ class ApiInvoker(formats: Formats)(implicit system: ActorSystem) extends CustomC req.withHeaders(Authorization(BasicHttpCredentials(login, password))) case (req, ApiKeyCredentials(keyValue, keyName, ApiKeyLocations.HEADER)) => req.withHeaders(RawHeader(keyName, keyValue.value)) + case (req, BearerToken(token)) => + req.withHeaders(RawHeader("Authorization", s"Bearer $token")) case (req, _) => req } } diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/methodParameters.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/methodParameters.mustache index 6394c664668..25626571073 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-client/methodParameters.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/methodParameters.mustache @@ -1 +1 @@ -{{#allParams}}{{paramName}}: {{#required}}{{dataType}}{{/required}}{{^required}}{{#isContainer}}{{dataType}}{{/isContainer}}{{^isContainer}}Option[{{dataType}}]{{/isContainer}}{{/required}}{{^defaultValue}}{{^required}}{{^isContainer}} = None{{/isContainer}}{{/required}}{{/defaultValue}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#authMethods.0}})(implicit {{#authMethods}}{{#isApiKey}}apiKey: ApiKeyValue{{/isApiKey}}{{#isBasic}}basicAuth: BasicCredentials{{/isBasic}}{{#hasMore}}, {{/hasMore}}{{/authMethods}}{{/authMethods.0}} \ No newline at end of file +{{#allParams}}{{paramName}}: {{#required}}{{dataType}}{{/required}}{{^required}}{{#isContainer}}{{dataType}}{{/isContainer}}{{^isContainer}}Option[{{dataType}}]{{/isContainer}}{{/required}}{{^defaultValue}}{{^required}}{{^isContainer}} = None{{/isContainer}}{{/required}}{{/defaultValue}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#authMethods.0}})(implicit {{#authMethods}}{{#isApiKey}}apiKey: ApiKeyValue{{/isApiKey}}{{#isBasic}}{{#isBasicBasic}}basicAuth: BasicCredentials{{/isBasicBasic}}{{#isBasicBearer}}bearerToken: BearerToken{{/isBasicBearer}}{{/isBasic}}{{#hasMore}}, {{/hasMore}}{{/authMethods}}{{/authMethods.0}} diff --git a/modules/openapi-generator/src/main/resources/scala-akka-client/requests.mustache b/modules/openapi-generator/src/main/resources/scala-akka-client/requests.mustache index 6c129147b73..882eef50e89 100644 --- a/modules/openapi-generator/src/main/resources/scala-akka-client/requests.mustache +++ b/modules/openapi-generator/src/main/resources/scala-akka-client/requests.mustache @@ -68,6 +68,8 @@ sealed trait Credentials { sealed case class BasicCredentials(user: String, password: String) extends Credentials +sealed case class BearerToken(token: String) extends Credentials + sealed case class ApiKeyCredentials(key: ApiKeyValue, keyName: String, location: ApiKeyLocation) extends Credentials { override def asQueryParam: Option[(String, String)] = location match { case ApiKeyLocations.QUERY => Some((keyName, key.value))