Bugfix for remote specs with params #21634
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #19724
[BUG] openapi-generator-maven-plugin 7.7.0 or 7.8.0 on Windows
The issue was originally introduced in PR #18576
The Issue
Due to the changed If statement in CodeGenMojo.java the code in the block would never be entered for remote URLs, resulting in any parameters being part of the hashFileName.
The result of this was that the special characters would make the code generation fail on Windows (as the hashfile would never be saved, resulting in a
FileNotFoundException) as well as leaking potentially sensitve inrformation, like parameter submitted access tokens, in the log (via the thrown expcetion on the filename in windows) or the filename of the hashfile on systems where the filename was still legal.My changes
I reverted the condition to its previous state. This fixes the issue without breaking the loading of specs from jar files, for which it was added in the first place.
I added new or changed existing tests for this testcase with against a file in the repo, with some useless parameters, as currently github seems to ignore paramters for raw.githubusercontent.com URLs.
The change in the Gradle Plugin test is just for completeness.
The issue does not appear in the gradle plugin.
PR checklist
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*.IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
master(upcoming7.x.0minor release - breaking changes with fallbacks),8.0.x(breaking changes without fallbacks)