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] Generate valid code if no Authentication implementations present #5788

Merged

Conversation

jonfreedman
Copy link
Contributor

resurrects #2861

Add hasBasicAuthMethods & hasTokenAuthMethods methods, use to decide which authentication code to use in standard Java and Java+RestTemplate templates.

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

@bbdouglas @sreeshas @jfiala @lukoyanov @cbornet @jeff9finger @karismann @Zomzog @lwlee2608 @bkabrda

@jonfreedman
Copy link
Contributor Author

Can someone with permission please re-try the failed checks

@jonfreedman
Copy link
Contributor Author

I cannot replicate the travis-ci failure on my local branch, this command generates valid code

mvn --quiet clean compile -f modules/openapi-generator-maven-plugin/examples/java-client.xml

assertEquals("api_key", apiKeyAuth.getParamName());

auth = auths.get("petstore_auth");
assertNull(auths.get("api_key"));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does auths.get("api_key") return null?

I remember some endpoints in the petstore spec are defined to use "api_key" for authentication

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per #2861 (comment) we now have hasTokenAuthMethods in DefaultGenerator which controls whether an ApiKeyAuth is registered in the authentications map. Sounds like you're saying that is not working - any idea why not?

@wing328
Copy link
Member

wing328 commented Apr 27, 2020

Sorry I should have caught it earlier. Please rename hasTokenAuthMethods to hasApiKeyAuthMethods instead. Thanks.

@jonfreedman
Copy link
Contributor Author

Sorry I should have caught it earlier. Please rename hasTokenAuthMethods to hasApiKeyAuthMethods instead. Thanks.

@wing328 done

@wing328
Copy link
Member

wing328 commented May 22, 2020

@jonfreedman I think I've figured out the issue and filed #6347 to add the helper methods to determine if certain authentication is required in the spec. (basically we should not determine if certain files should be included in the post-process operations)

I wonder if you can merge the latest master into this branch or file a new PR using the helper methods I added instead.

Thank you.

@jonfreedman
Copy link
Contributor Author

@wing328 I'll merge now

…ds-hasTokenAuthMethods

# Conflicts:
#	modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java
#	modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java
#	modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java
#	modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java
#	samples/client/petstore/java/jersey2/src/test/java/org/openapitools/client/ApiClientTest.java
@jonfreedman
Copy link
Contributor Author

OK lets see what state this is in now, I must say this project is really a challenge to work with

@jonfreedman
Copy link
Contributor Author

The bitrise tests passed but apparently it can't send status back to github...

@jonfreedman
Copy link
Contributor Author

@wing328 I believe this is now "green" (https://app.bitrise.io/build/eeed859d13299e21)

Copy link
Member

@wing328 wing328 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wing328 wing328 merged commit 950508f into OpenAPITools:master May 23, 2020
@wing328
Copy link
Member

wing328 commented May 23, 2020

OK lets see what state this is in now, I must say this project is really a challenge to work with

@jonfreedman thanks for the feedback. I agreed there's a learning curve. If you've any suggestions to make it easier to contribute, please share your feedback with us.

(For this particular case, there's a fundamental issue (bug) with how we selectively add authentication-related files in post-process operations to start with and thanks for PR so that we can uncover the issue and fix it accordingly)

@wing328 wing328 added this to the 5.0.0 milestone May 23, 2020
@jonfreedman jonfreedman deleted the hasBasicAuthMethods-hasTokenAuthMethods branch May 23, 2020 10:38
jimschubert added a commit that referenced this pull request May 23, 2020
* master:
  decomission nodejs server generator (#6406)
  [Java] Generate valid code if no Authentication implementations present (#5788)
jimschubert added a commit to jimschubert/openapi-generator that referenced this pull request May 23, 2020
* master:
  decomission nodejs server generator (OpenAPITools#6406)
  [Java] Generate valid code if no Authentication implementations present (OpenAPITools#5788)
jimschubert added a commit that referenced this pull request May 25, 2020
* master: (71 commits)
  [PS] check if JSON properties is defined (#6419)
  Add C++ UE4  client generator (#6399)
  Add a link to the article in dev.to (#6421)
  typescript-axios anytype is not defined (#6335)
  [Java][jersey2] Make (de)serialization work for oneOf models, add convenience and comparison methods (#6323)
  Migrate OCaml petstore to use OAS v3 spec (#6348)
  [Python-experimental] Fix type error if oneof/anyof child schema is null type (#6387)
  [Python-server] Fix blueplanet 'file not found' error  (#6411)
  [nodejs] Fix deprecation notice when running sample nodejs script (#6412)
  [java-jersey2] Conditionally include http signature mustache template (#6413)
  [bug] Fix path provider bug on CI (#6409)
  decomission nodejs server generator (#6406)
  [Java] Generate valid code if no Authentication implementations present (#5788)
  update java jersey2 samples
  [Java] Fix mustache tag in pom template for HTTP signature (#6404)
  [Python-experimental] Rename from_server variable to json_variable_naming (#6390)
  Add a link to medium blog post (#6403)
  Clean up debug in test (#6398)
  readding bin/swift5-petstore-readonlyProperties.json
  remove ./bin/swift5-petstore-readonlyProperties.json
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants