forked from loafle/openapi-generator-original
* 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 <james.schubert@gmail.com> Co-authored-by: Jaroslaw Zawila <jaroslaw.zawila@gmail.com>
This commit is contained in:
parent
13162b8eee
commit
561335f5e5
@ -199,7 +199,7 @@ sidebar_label: scala-akka
|
|||||||
|BasicAuth|✓|OAS2,OAS3
|
|BasicAuth|✓|OAS2,OAS3
|
||||||
|ApiKey|✓|OAS2,OAS3
|
|ApiKey|✓|OAS2,OAS3
|
||||||
|OpenIDConnect|✗|OAS3
|
|OpenIDConnect|✗|OAS3
|
||||||
|BearerToken|✗|OAS3
|
|BearerToken|✓|OAS3
|
||||||
|OAuth2_Implicit|✗|OAS2,OAS3
|
|OAuth2_Implicit|✗|OAS2,OAS3
|
||||||
|OAuth2_Password|✗|OAS2,OAS3
|
|OAuth2_Password|✗|OAS2,OAS3
|
||||||
|OAuth2_ClientCredentials|✗|OAS2,OAS3
|
|OAuth2_ClientCredentials|✗|OAS2,OAS3
|
||||||
|
@ -62,7 +62,8 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code
|
|||||||
.wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON, WireFormatFeature.XML, WireFormatFeature.Custom))
|
.wireFormatFeatures(EnumSet.of(WireFormatFeature.JSON, WireFormatFeature.XML, WireFormatFeature.Custom))
|
||||||
.securityFeatures(EnumSet.of(
|
.securityFeatures(EnumSet.of(
|
||||||
SecurityFeature.BasicAuth,
|
SecurityFeature.BasicAuth,
|
||||||
SecurityFeature.ApiKey
|
SecurityFeature.ApiKey,
|
||||||
|
SecurityFeature.BearerToken
|
||||||
))
|
))
|
||||||
.excludeGlobalFeatures(
|
.excludeGlobalFeatures(
|
||||||
GlobalFeature.XMLStructureDefinitions,
|
GlobalFeature.XMLStructureDefinitions,
|
||||||
|
@ -23,8 +23,7 @@ class {{classname}}(baseUrl: String) {
|
|||||||
def {{operationId}}({{>methodParameters}}): ApiRequest[{{>operationReturnType}}] =
|
def {{operationId}}({{>methodParameters}}): ApiRequest[{{>operationReturnType}}] =
|
||||||
ApiRequest[{{>operationReturnType}}](ApiMethods.{{httpMethod.toUpperCase}}, baseUrl, "{{{path}}}", {{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}{{^consumes}}"application/json"{{/consumes}})
|
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}})
|
{{#authMethods}}{{#isApiKey}}.withApiKey(apiKey, "{{keyParamName}}", {{#isKeyInQuery}}QUERY{{/isKeyInQuery}}{{#isKeyInHeader}}HEADER{{/isKeyInHeader}}{{#isKeyInCookie}}COOKIE{{/isKeyInCookie}})
|
||||||
{{/isApiKey}}{{#isBasic}}.withCredentials(basicAuth)
|
{{/isApiKey}}{{#isBasic}}{{#isBasicBasic}}.withCredentials(basicAuth){{/isBasicBasic}}{{#isBasicBearer}}.withCredentials(bearerToken){{/isBasicBearer}}{{/isBasic}}{{/authMethods}}{{#bodyParam}}.withBody({{paramName}})
|
||||||
{{/isBasic}}{{/authMethods}}{{#bodyParam}}.withBody({{paramName}})
|
|
||||||
{{/bodyParam}}{{#formParams}}.withFormParam({{>paramCreation}})
|
{{/bodyParam}}{{#formParams}}.withFormParam({{>paramCreation}})
|
||||||
{{/formParams}}{{#queryParams}}.withQueryParam({{>paramCreation}})
|
{{/formParams}}{{#queryParams}}.withQueryParam({{>paramCreation}})
|
||||||
{{/queryParams}}{{#pathParams}}.withPathParam({{>paramCreation}})
|
{{/queryParams}}{{#pathParams}}.withPathParam({{>paramCreation}})
|
||||||
|
@ -118,6 +118,8 @@ class ApiInvoker(formats: Formats)(implicit system: ActorSystem) extends CustomC
|
|||||||
req.withHeaders(Authorization(BasicHttpCredentials(login, password)))
|
req.withHeaders(Authorization(BasicHttpCredentials(login, password)))
|
||||||
case (req, ApiKeyCredentials(keyValue, keyName, ApiKeyLocations.HEADER)) =>
|
case (req, ApiKeyCredentials(keyValue, keyName, ApiKeyLocations.HEADER)) =>
|
||||||
req.withHeaders(RawHeader(keyName, keyValue.value))
|
req.withHeaders(RawHeader(keyName, keyValue.value))
|
||||||
|
case (req, BearerToken(token)) =>
|
||||||
|
req.withHeaders(RawHeader("Authorization", s"Bearer $token"))
|
||||||
case (req, _) => req
|
case (req, _) => req
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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}}
|
{{#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}}
|
||||||
|
@ -68,6 +68,8 @@ sealed trait Credentials {
|
|||||||
|
|
||||||
sealed case class BasicCredentials(user: String, password: String) extends 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 {
|
sealed case class ApiKeyCredentials(key: ApiKeyValue, keyName: String, location: ApiKeyLocation) extends Credentials {
|
||||||
override def asQueryParam: Option[(String, String)] = location match {
|
override def asQueryParam: Option[(String, String)] = location match {
|
||||||
case ApiKeyLocations.QUERY => Some((keyName, key.value))
|
case ApiKeyLocations.QUERY => Some((keyName, key.value))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user