Skip to content

Commit 6e48cf4

Browse files
SemenchikusSimon Baranov
andauthored
[BUG][JAVA] RestTemplate uses hardcoded User-Agent Java-SDK #21972 (#21973)
Co-authored-by: Simon Baranov <simon.baranov@zahlungswerk.de>
1 parent 6278512 commit 6e48cf4

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/ApiClient.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
145145
this.dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
146146
147147
// Set default User-Agent.
148-
setUserAgent("Java-SDK");
148+
setUserAgent("{{{httpUserAgent}}}{{^httpUserAgent}}OpenAPI-Generator/{{{artifactVersion}}}/java{{/httpUserAgent}}");
149149
150150
// Setup authentications (key: authentication name, value: authentication).
151151
authentications = new HashMap<String, Authentication>();{{#authMethods}}{{#isBasic}}{{#isBasicBasic}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3151,6 +3151,43 @@ public void testRestTemplateWithGeneratedOAuthTokenSuppliers() {
31513151

31523152
}
31533153

3154+
@Test
3155+
public void testRestTemplateWithDefaultUserAgent() {
3156+
3157+
final Map<String, File> files = generateFromContract(
3158+
"src/test/resources/3_1/java/petstore.yaml",
3159+
JavaClientCodegen.RESTTEMPLATE
3160+
);
3161+
3162+
final JavaFileAssert apiClient = JavaFileAssert.assertThat(files.get("ApiClient.java"))
3163+
.printFileContent();
3164+
apiClient
3165+
.assertMethod("init")
3166+
.bodyContainsLines("setUserAgent(\"OpenAPI-Generator/1.0.0/java\");");
3167+
}
3168+
3169+
@Test
3170+
public void testRestTemplateWithCustomUserAgent() {
3171+
3172+
final Path output = newTempFolder();
3173+
final CodegenConfigurator configurator = new CodegenConfigurator()
3174+
.setValidateSpec(false)
3175+
.setGeneratorName(JAVA_GENERATOR)
3176+
.setLibrary(JavaClientCodegen.RESTTEMPLATE)
3177+
.setHttpUserAgent("MyAwesomeCustomService/0.0.1")
3178+
.setInputSpec("src/test/resources/3_1/java/petstore.yaml")
3179+
.setOutputDir(output.toString().replace("\\", "/"));
3180+
3181+
final Map<String, File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate()
3182+
.stream().collect(Collectors.toMap(File::getName, Function.identity()));;
3183+
3184+
final JavaFileAssert apiClient = JavaFileAssert.assertThat(files.get("ApiClient.java"))
3185+
.printFileContent();
3186+
apiClient
3187+
.assertMethod("init")
3188+
.bodyContainsLines("setUserAgent(\"MyAwesomeCustomService/0.0.1\");");
3189+
}
3190+
31543191
@Test
31553192
public void testRestClientWithGeneratedOAuthTokenSuppliers() {
31563193
final Map<String, File> files = generateFromContract(
@@ -3195,6 +3232,7 @@ public void testRestClientWithXML_issue_19137() {
31953232
);
31963233
}
31973234

3235+
31983236
@Test
31993237
public void testRestClientWithUseSingleRequestParameter_issue_19406() {
32003238
final Path output = newTempFolder();

0 commit comments

Comments
 (0)