Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Java][Feign]Remove oauth related code for non secured apis #9472

Conversation

hugo-ma-alves
Copy link
Contributor

@hugo-ma-alves hugo-ma-alves commented May 13, 2021

Hello

On the previous PR https://github.com/OpenAPITools/openapi-generator/pull/8318/files I forgot to take in account the cases where the API does not have any authentication mechanism.
If we use the current version of openapi-cli to generate the client for a non secured api, we will get Oauth related code on the output but not the required dependencies on the pom.xml/gradle.

This PR removes the unnecessary code when the api is not configured to use authentication.

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package 
    ./bin/generate-samples.sh
    ./bin/utils/export_docs_generators.sh
    
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master, 5.1.x, 6.0.x
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.
    --

@bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @nmuesch (2021/01)

@TobsCore
Copy link

The previous version breaks our build, since scribejava was not present as a library. After adding it, the generated classes will cause compile errors, since the OAuth class was not present and neither was OAuthFlow (enum?).

Therefore this change is very welcome. We are currently stuck on v5.0.0.

@pPanda-beta
Copy link

Good one, we really need this!

@hugo-ma-alves do you know any workarounds until this PR gets released?

@hugo-ma-alves
Copy link
Contributor Author

Hello @pPanda-beta

A quick and dirty workaround is to delete the affected code.

On ApiClient.java

private RequestInterceptor buildOauthRequestInterceptor(OAuthFlow flow, String authorizationUrl, String tokenUrl, String scopes) {
    switch (flow) {
      case password:
        return new OauthPasswordGrant(tokenUrl, scopes);
      case application:
        return new OauthClientCredentialsGrant(authorizationUrl, tokenUrl, scopes);
      default:
        throw new RuntimeException("Oauth flow \"" + flow + "\" is not implemented");
    }
  }

And delete the following files:

  • OauthPasswordGrant
  • OauthClientCredentialsGrant

@wing328
Copy link
Member

wing328 commented Jun 18, 2021

@hugo-ma-alves thanks for the PR but sorry that I missed it. I've done it via #9760 instead (merged into master). Can you please pull the latest master to give it a try?

Happy to reopen this one if needed.

@wing328 wing328 closed this Jun 18, 2021
@hugo-ma-alves
Copy link
Contributor Author

Thanks @wing328
Looks good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants