Skip to content

[BUG][Java] Generated okhttp-gson does not work with relative OAuth2 token URLs #5531

@sebastien-rosset

Description

@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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions