Bug Report Checklist
Description
A RuntimeException may be thrown when invoking an API, provided the OAS document defines more than one security scheme and the client creates the ApiClient class by invoking a constructor with arguments.
Exception in thread "main" java.lang.RuntimeException: Authentication undefined: cookieAuth
at ....client.ApiClient.updateParamsForAuth(ApiClient.java:1294)
at ....client.ApiClient.buildRequest(ApiClient.java:1138)
at ....client.ApiClient.buildCall(ApiClient.java:1108)
at .....client.api.AaaApi.getXYZCall(AaaApi.java:143)
This happens because:
- the Java okhttp-gson mustache template generates the following constructors:
public ApiClient()
public ApiClient(String clientId)
public ApiClient(String clientId, Map<String, String> parameters)
public ApiClient(String clientId, String clientSecret, Map<String, String> parameters)
-
But only the basic constructor ApiClient() initializes all authentication methods.
authentications.put("cookieAuth", new ApiKeyAuth("cookie", "X-My-Token"));
authentications.put("oAuth2", new OAuth());
For example, the constructor ApiClient(String clientId, String clientSecret, Map<String, String> parameters) initializes the OAuth2 authentication parameters but not the other ones.
- When invoking an API, the ApiClient.updateParamsForAuth() expects all authentication parameters to be initialized.
openapi-generator version
master Marcch 4th 2020
OpenAPI declaration file content or url
Command line used for generation
Steps to reproduce
Related issues/PRs
Suggest a fix
Bug Report Checklist
Description
A RuntimeException may be thrown when invoking an API, provided the OAS document defines more than one security scheme and the client creates the ApiClient class by invoking a constructor with arguments.
This happens because:
But only the basic constructor ApiClient() initializes all authentication methods.
authentications.put("cookieAuth", new ApiKeyAuth("cookie", "X-My-Token"));
authentications.put("oAuth2", new OAuth());
For example, the constructor ApiClient(String clientId, String clientSecret, Map<String, String> parameters) initializes the OAuth2 authentication parameters but not the other ones.
openapi-generator version
master Marcch 4th 2020
OpenAPI declaration file content or url
Command line used for generation
Steps to reproduce
Related issues/PRs
Suggest a fix