Skip to content

Commit b23dcbd

Browse files
authored
[Java] [VertX] Handle hyphen-separated security scheme in input spec (#18630)
1 parent 2f9b487 commit b23dcbd

File tree

5 files changed

+93
-39
lines changed

5 files changed

+93
-39
lines changed

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -680,54 +680,54 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
680680
681681
private final Map<String, Authentication> authentications = new LinkedHashMap<>();{{#authMethods}}{{#isBasic}}{{#isBasicBasic}}
682682

683-
public void add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String username, String password) {
683+
public void add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String username, String password) {
684684
HttpBasicAuth auth = new HttpBasicAuth();
685685
auth.setUsername(username);
686686
auth.setPassword(password);
687687
authentications.put("{{name}}", auth);
688688
}{{/isBasicBasic}}{{#isBasicBearer}}
689689

690-
public void add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String bearerToken) {
690+
public void add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String bearerToken) {
691691
HttpBearerAuth auth = new
692692
HttpBearerAuth("{{scheme}}");
693693
auth.setBearerToken(bearerToken);
694694
authentications.put("{{name}}", auth);
695695
}{{/isBasicBearer}}{{/isBasic}}{{#isApiKey}}
696696

697-
public void add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String apikey, String apiKeyPrefix) {
697+
public void add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String apikey, String apiKeyPrefix) {
698698
ApiKeyAuth auth = new ApiKeyAuth({{#isKeyInHeader}}"header"{{/isKeyInHeader}}{{#isKeyInQuery}}"query"{{/isKeyInQuery}}{{#isKeyInCookie}}"cookie"{{/isKeyInCookie}},"{{keyParamName}}");
699699
auth.setApiKey(apikey);
700700
auth.setApiKeyPrefix(apiKeyPrefix);
701701
authentications.put("{{name}}", auth);
702702
}{{/isApiKey}}{{#isOAuth}}
703703

704-
public void add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String accessToken) {
704+
public void add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String accessToken) {
705705
OAuth auth = new OAuth();
706706
auth.setAccessToken(accessToken);
707707
authentications.put("{{name}}", auth);
708708
}{{/isOAuth}}{{/authMethods}}{{#authMethods}}{{#isBasic}}{{#isBasicBasic}}
709709

710-
public static AuthInfo for{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}(String username, String password) {
710+
public static AuthInfo for{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}(String username, String password) {
711711
AuthInfo authInfo = new AuthInfo();
712-
authInfo.add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(username, password);
712+
authInfo.add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(username, password);
713713
return authInfo;
714714
}{{/isBasicBasic}}{{#isBasicBearer}}
715715

716-
public static AuthInfo for{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String bearerToken) {
716+
public static AuthInfo for{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String bearerToken) {
717717
AuthInfo authInfo = new AuthInfo();
718-
authInfo.add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(bearerToken);
718+
authInfo.add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(bearerToken);
719719
return authInfo;
720720
}{{/isBasicBearer}}{{/isBasic}}{{#isApiKey}}
721721

722-
public static AuthInfo for{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String apikey, String apiKeyPrefix) {
722+
public static AuthInfo for{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String apikey, String apiKeyPrefix) {
723723
AuthInfo authInfo = new AuthInfo();
724-
authInfo.add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(apikey, apiKeyPrefix);
724+
authInfo.add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(apikey, apiKeyPrefix);
725725
return authInfo;
726726
}{{/isApiKey}}{{#isOAuth}}
727727

728-
public static AuthInfo for{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(String accessToken) {
728+
public static AuthInfo for{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(String accessToken) {
729729
AuthInfo authInfo = new AuthInfo();
730-
authInfo.add{{#lambda.titlecase}}{{name}}{{/lambda.titlecase}}Authentication(accessToken);
730+
authInfo.add{{#lambda.titlecase}}{{#lambda.camelcase}}{{name}}{{/lambda.camelcase}}{{/lambda.titlecase}}Authentication(accessToken);
731731
return authInfo;
732732
}{{/isOAuth}}{{/authMethods}}
733733
}

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -999,6 +999,39 @@ public void testBearerAuth() {
999999
Assertions.assertEquals(security.get(0).isBasicBearer, Boolean.TRUE);
10001000
}
10011001

1002+
@Test
1003+
public void testVertXAuthInfoWithHyphenSeparatedSecurityScheme() throws Exception {
1004+
Map<String, Object> properties = new HashMap<>();
1005+
properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api");
1006+
1007+
File output = Files.createTempDirectory("test").toFile();
1008+
output.deleteOnExit();
1009+
1010+
final CodegenConfigurator configurator = new CodegenConfigurator()
1011+
.setGeneratorName("java")
1012+
.setLibrary(JavaClientCodegen.VERTX)
1013+
.setAdditionalProperties(properties)
1014+
.setInputSpec("src/test/resources/3_0/ping-with-hyphen-separated-security-scheme.yaml")
1015+
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));
1016+
1017+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
1018+
DefaultGenerator generator = new DefaultGenerator();
1019+
List<File> files = generator.opts(clientOptInput).generate();
1020+
1021+
// Test that hyphen-separated security scheme names does not
1022+
// break the Java VertX client code generation
1023+
validateJavaSourceFiles(files);
1024+
1025+
// Test that the name was correctly transformed to camelCase
1026+
// starting with an uppercase letter
1027+
TestUtils.assertFileContains(
1028+
Paths.get(output + "/src/main/java/xyz/abcdef/ApiClient.java"),
1029+
"public static class AuthInfo {",
1030+
"public void addHyphenatedNameTestAuthentication(String bearerToken) {",
1031+
"public static AuthInfo forHyphenatedNameTestAuthentication(String bearerToken) {"
1032+
);
1033+
}
1034+
10021035
private CodegenProperty codegenPropertyWithArrayOfIntegerValues() {
10031036
CodegenProperty array = new CodegenProperty();
10041037
final CodegenProperty items = new CodegenProperty();
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
openapi: 3.0.1
2+
info:
3+
title: ping test
4+
version: '1.0'
5+
servers:
6+
- url: 'http://localhost:8080/'
7+
paths:
8+
/ping:
9+
get:
10+
operationId: pingGet
11+
responses:
12+
'201':
13+
description: OK
14+
components:
15+
securitySchemes:
16+
hyphenated-name-test:
17+
scheme: bearer
18+
bearerFormat: token
19+
type: http
20+
security:
21+
- hyphenated-name-test: []

samples/client/petstore/java/vertx-no-nullable/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -667,54 +667,54 @@ public static class AuthInfo {
667667

668668
private final Map<String, Authentication> authentications = new LinkedHashMap<>();
669669

670-
public void addPetstore_authAuthentication(String accessToken) {
670+
public void addPetstoreAuthAuthentication(String accessToken) {
671671
OAuth auth = new OAuth();
672672
auth.setAccessToken(accessToken);
673673
authentications.put("petstore_auth", auth);
674674
}
675675

676-
public void addApi_keyAuthentication(String apikey, String apiKeyPrefix) {
676+
public void addApiKeyAuthentication(String apikey, String apiKeyPrefix) {
677677
ApiKeyAuth auth = new ApiKeyAuth("header","api_key");
678678
auth.setApiKey(apikey);
679679
auth.setApiKeyPrefix(apiKeyPrefix);
680680
authentications.put("api_key", auth);
681681
}
682682

683-
public void addApi_key_queryAuthentication(String apikey, String apiKeyPrefix) {
683+
public void addApiKeyQueryAuthentication(String apikey, String apiKeyPrefix) {
684684
ApiKeyAuth auth = new ApiKeyAuth("query","api_key_query");
685685
auth.setApiKey(apikey);
686686
auth.setApiKeyPrefix(apiKeyPrefix);
687687
authentications.put("api_key_query", auth);
688688
}
689689

690-
public void addHttp_basic_testAuthentication(String username, String password) {
690+
public void addHttpBasicTestAuthentication(String username, String password) {
691691
HttpBasicAuth auth = new HttpBasicAuth();
692692
auth.setUsername(username);
693693
auth.setPassword(password);
694694
authentications.put("http_basic_test", auth);
695695
}
696696

697-
public static AuthInfo forPetstore_authAuthentication(String accessToken) {
697+
public static AuthInfo forPetstoreAuthAuthentication(String accessToken) {
698698
AuthInfo authInfo = new AuthInfo();
699-
authInfo.addPetstore_authAuthentication(accessToken);
699+
authInfo.addPetstoreAuthAuthentication(accessToken);
700700
return authInfo;
701701
}
702702

703-
public static AuthInfo forApi_keyAuthentication(String apikey, String apiKeyPrefix) {
703+
public static AuthInfo forApiKeyAuthentication(String apikey, String apiKeyPrefix) {
704704
AuthInfo authInfo = new AuthInfo();
705-
authInfo.addApi_keyAuthentication(apikey, apiKeyPrefix);
705+
authInfo.addApiKeyAuthentication(apikey, apiKeyPrefix);
706706
return authInfo;
707707
}
708708

709-
public static AuthInfo forApi_key_queryAuthentication(String apikey, String apiKeyPrefix) {
709+
public static AuthInfo forApiKeyQueryAuthentication(String apikey, String apiKeyPrefix) {
710710
AuthInfo authInfo = new AuthInfo();
711-
authInfo.addApi_key_queryAuthentication(apikey, apiKeyPrefix);
711+
authInfo.addApiKeyQueryAuthentication(apikey, apiKeyPrefix);
712712
return authInfo;
713713
}
714714

715-
public static AuthInfo forHttp_basic_test(String username, String password) {
715+
public static AuthInfo forHttpBasicTest(String username, String password) {
716716
AuthInfo authInfo = new AuthInfo();
717-
authInfo.addHttp_basic_testAuthentication(username, password);
717+
authInfo.addHttpBasicTestAuthentication(username, password);
718718
return authInfo;
719719
}
720720
}

samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/ApiClient.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -671,67 +671,67 @@ public static class AuthInfo {
671671

672672
private final Map<String, Authentication> authentications = new LinkedHashMap<>();
673673

674-
public void addPetstore_authAuthentication(String accessToken) {
674+
public void addPetstoreAuthAuthentication(String accessToken) {
675675
OAuth auth = new OAuth();
676676
auth.setAccessToken(accessToken);
677677
authentications.put("petstore_auth", auth);
678678
}
679679

680-
public void addApi_keyAuthentication(String apikey, String apiKeyPrefix) {
680+
public void addApiKeyAuthentication(String apikey, String apiKeyPrefix) {
681681
ApiKeyAuth auth = new ApiKeyAuth("header","api_key");
682682
auth.setApiKey(apikey);
683683
auth.setApiKeyPrefix(apiKeyPrefix);
684684
authentications.put("api_key", auth);
685685
}
686686

687-
public void addApi_key_queryAuthentication(String apikey, String apiKeyPrefix) {
687+
public void addApiKeyQueryAuthentication(String apikey, String apiKeyPrefix) {
688688
ApiKeyAuth auth = new ApiKeyAuth("query","api_key_query");
689689
auth.setApiKey(apikey);
690690
auth.setApiKeyPrefix(apiKeyPrefix);
691691
authentications.put("api_key_query", auth);
692692
}
693693

694-
public void addHttp_basic_testAuthentication(String username, String password) {
694+
public void addHttpBasicTestAuthentication(String username, String password) {
695695
HttpBasicAuth auth = new HttpBasicAuth();
696696
auth.setUsername(username);
697697
auth.setPassword(password);
698698
authentications.put("http_basic_test", auth);
699699
}
700700

701-
public void addBearer_testAuthentication(String bearerToken) {
701+
public void addBearerTestAuthentication(String bearerToken) {
702702
HttpBearerAuth auth = new
703703
HttpBearerAuth("bearer");
704704
auth.setBearerToken(bearerToken);
705705
authentications.put("bearer_test", auth);
706706
}
707707

708-
public static AuthInfo forPetstore_authAuthentication(String accessToken) {
708+
public static AuthInfo forPetstoreAuthAuthentication(String accessToken) {
709709
AuthInfo authInfo = new AuthInfo();
710-
authInfo.addPetstore_authAuthentication(accessToken);
710+
authInfo.addPetstoreAuthAuthentication(accessToken);
711711
return authInfo;
712712
}
713713

714-
public static AuthInfo forApi_keyAuthentication(String apikey, String apiKeyPrefix) {
714+
public static AuthInfo forApiKeyAuthentication(String apikey, String apiKeyPrefix) {
715715
AuthInfo authInfo = new AuthInfo();
716-
authInfo.addApi_keyAuthentication(apikey, apiKeyPrefix);
716+
authInfo.addApiKeyAuthentication(apikey, apiKeyPrefix);
717717
return authInfo;
718718
}
719719

720-
public static AuthInfo forApi_key_queryAuthentication(String apikey, String apiKeyPrefix) {
720+
public static AuthInfo forApiKeyQueryAuthentication(String apikey, String apiKeyPrefix) {
721721
AuthInfo authInfo = new AuthInfo();
722-
authInfo.addApi_key_queryAuthentication(apikey, apiKeyPrefix);
722+
authInfo.addApiKeyQueryAuthentication(apikey, apiKeyPrefix);
723723
return authInfo;
724724
}
725725

726-
public static AuthInfo forHttp_basic_test(String username, String password) {
726+
public static AuthInfo forHttpBasicTest(String username, String password) {
727727
AuthInfo authInfo = new AuthInfo();
728-
authInfo.addHttp_basic_testAuthentication(username, password);
728+
authInfo.addHttpBasicTestAuthentication(username, password);
729729
return authInfo;
730730
}
731731

732-
public static AuthInfo forBearer_testAuthentication(String bearerToken) {
732+
public static AuthInfo forBearerTestAuthentication(String bearerToken) {
733733
AuthInfo authInfo = new AuthInfo();
734-
authInfo.addBearer_testAuthentication(bearerToken);
734+
authInfo.addBearerTestAuthentication(bearerToken);
735735
return authInfo;
736736
}
737737
}

0 commit comments

Comments
 (0)