[BUG][Java] Generated okhttp-gson does not work with relative OAuth2 token URLs
Created by: sebastien-rosset
Bug Report Checklist
-
Have you provided a full/minimal spec to reproduce the issue? -
Have you validated the input using an OpenAPI validator (example)? -
What's the version of OpenAPI Generator used? -
Have you search for related issues/PRs? -
What's the actual output vs expected output? -
[Optional] Bounty to sponsor the fix (example)
Description
The generated Java client SDK throws an IllegalArgumentException when the OAS document contains a OAuth2 security scheme and the token URL is a relative URL. I don't think there is anything in the OAS spec that states the URL must be an absolute URL.
Exception in thread "main" java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found
at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1332)
at okhttp3.HttpUrl.get(HttpUrl.java:917)
at okhttp3.Request$Builder.url(Request.java:165)
at .....client.auth.OAuthOkHttpClient.execute(OAuthOkHttpClient.java:35)
openapi-generator version
master March 4th 2020
OpenAPI declaration file content or url
securitySchemes:
oAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: /iam/token
Command line used for generation
Steps to reproduce
Related issues/PRs
Suggest a fix
No exception should be thrown. The generated client should use the server prefix URL if the token URL is relative. Use ApiClient.getBasePath() method.