Skip to content

Commit 9bc335b

Browse files
burberiusjmini
authored andcommitted
Forbiddenapis check and fix (#672)
* Added forbiddenapis check and fixed the findings in the normal code * Fixed forbiddenapi findings in java templates and samples. * Generated all samples for Java.
1 parent 227f277 commit 9bc335b

126 files changed

Lines changed: 709 additions & 546 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CI/samples.ci/client/petstore/java/test-manual/jersey1/ApiClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void testParseAndFormatDate() {
2828
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T02:49:09.356-01:00")));
2929

3030
// custom date format: without milli-seconds, custom time zone
31-
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
31+
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
3232
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
3333
apiClient.setDateFormat(format);
3434
dateStr = "2015-11-07T13:49:09+10:00";

CI/samples.ci/client/petstore/java/test-manual/jersey2/ApiClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void testParseAndFormatDate() {
2828
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T02:49:09.356-01:00")));
2929

3030
// custom date format: without milli-seconds, custom time zone
31-
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
31+
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
3232
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
3333
apiClient.setDateFormat(format);
3434
dateStr = "2015-11-07T13:49:09+10:00";

CI/samples.ci/client/petstore/java/test-manual/okhttp-gson/JSONTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Calendar;
1313
import java.util.Date;
1414
import java.util.GregorianCalendar;
15+
import java.util.Locale;
1516
import java.util.TimeZone;
1617

1718
import okio.ByteString;
@@ -46,7 +47,7 @@ public void testSqlDateTypeAdapter() {
4647
assertEquals(json.deserialize("\"2015-11-07T03:49:09.356" + getCurrentTimezoneOffset() + "\"", java.sql.Date.class).toString(), date.toString());
4748

4849
// custom date format: without day
49-
DateFormat format = new SimpleDateFormat("yyyy-MM");
50+
DateFormat format = new SimpleDateFormat("yyyy-MM", Locale.ROOT);
5051
apiClient.setSqlDateFormat(format);
5152
String dateStr = "\"2015-11\"";
5253
assertEquals(dateStr, json.serialize(json.deserialize("\"2015-11-07T03:49:09Z\"", java.sql.Date.class)));
@@ -79,7 +80,7 @@ public void testDateTypeAdapter() {
7980
assertEquals(utcDate, json.serialize(date));
8081

8182
// custom datetime format: without milli-seconds, custom time zone
82-
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
83+
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
8384
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
8485
apiClient.setDateFormat(format);
8586

@@ -190,10 +191,10 @@ public void testByteArrayTypeAdapterDeserialization() {
190191
public static String getCurrentTimezoneOffset() {
191192

192193
TimeZone tz = TimeZone.getDefault();
193-
Calendar cal = GregorianCalendar.getInstance(tz);
194+
Calendar cal = GregorianCalendar.getInstance(tz, Locale.ROOT);
194195
int offsetInMillis = tz.getOffset(cal.getTimeInMillis());
195196

196-
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
197+
String offset = String.format(Locale.ROOT,"%02d:%02d", Math.abs(offsetInMillis / 3600000), Math.abs((offsetInMillis / 60000) % 60));
197198
offset = (offsetInMillis >= 0 ? "+" : "-") + offset;
198199

199200
return offset;

CI/samples.ci/client/petstore/java/test-manual/resttemplate/ApiClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void testParseAndFormatDate() {
3434
assertEquals(dateStr, apiClient.formatDate(apiClient.parseDate("2015-11-07T02:49:09.356-01:00")));
3535

3636
// custom date format: without milli-seconds, custom time zone
37-
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
37+
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX", Locale.ROOT);
3838
format.setTimeZone(TimeZone.getTimeZone("GMT+10"));
3939
apiClient.setDateFormat(format);
4040
dateStr = "2015-11-07T13:49:09+10:00";

modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/OpenAPIGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import io.airlift.airline.ParseOptionMissingValueException;
2525
import org.openapitools.codegen.cmd.*;
2626

27+
import java.util.Locale;
28+
2729
/**
2830
* User: lanwen Date: 24.03.15 Time: 17:56
2931
* <p>
@@ -40,6 +42,7 @@ public static void main(String[] args) {
4042
Cli.<Runnable>builder("openapi-generator-cli")
4143
.withDescription(
4244
String.format(
45+
Locale.ROOT,
4346
"OpenAPI generator CLI (version %s).",
4447
version))
4548
.withDefaultCommand(ListGenerators.class)
@@ -69,10 +72,10 @@ public static void main(String[] args) {
6972
System.exit(1);
7073
}
7174
} catch (ParseArgumentsUnexpectedException e) {
72-
System.err.printf("[error] %s%n%nSee 'openapi-generator-cli help' for usage.%n", e.getMessage());
75+
System.err.printf(Locale.ROOT,"[error] %s%n%nSee 'openapi-generator-cli help' for usage.%n", e.getMessage());
7376
System.exit(1);
7477
} catch (ParseOptionMissingException | ParseOptionMissingValueException e) {
75-
System.err.printf("[error] %s%n", e.getMessage());
78+
System.err.printf(Locale.ROOT,"[error] %s%n", e.getMessage());
7679
System.exit(1);
7780
}
7881
}

modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Langs.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import io.airlift.airline.Command;
2222
import org.openapitools.codegen.CodegenConfig;
2323

24+
import java.util.Locale;
25+
2426
import static ch.lambdaj.Lambda.on;
2527
import static ch.lambdaj.collection.LambdaCollections.with;
2628
import static java.util.ServiceLoader.load;
@@ -34,6 +36,6 @@ public class Langs implements Runnable {
3436
public void run() {
3537
LambdaIterable<String> langs =
3638
with(load(CodegenConfig.class)).extract(on(CodegenConfig.class).getName());
37-
System.out.printf("Available languages (generators): %s%n", langs);
39+
System.out.printf(Locale.ROOT, "Available languages (generators): %s%n", langs);
3840
}
3941
}

modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ListGenerators.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.Arrays;
1010
import java.util.Comparator;
1111
import java.util.List;
12+
import java.util.Locale;
1213

1314
// NOTE: List can later have subcommands such as list languages, list types, list frameworks, etc.
1415
@Command(name = "list", description = "Lists the available generators")
@@ -53,6 +54,6 @@ public void run() {
5354
}
5455
}
5556

56-
System.out.printf("%s%n", sb.toString());
57+
System.out.printf(Locale.ROOT,"%s%n", sb.toString());
5758
}
5859
}

modules/openapi-generator-online/src/main/java/org/openapitools/codegen/online/service/Generator.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,16 @@
1919

2020
import com.fasterxml.jackson.databind.JsonNode;
2121
import io.swagger.parser.OpenAPIParser;
22+
import io.swagger.v3.core.util.Json;
2223
import io.swagger.v3.oas.models.OpenAPI;
23-
import io.swagger.v3.parser.core.models.ParseOptions;
24-
import org.openapitools.codegen.*;
2524
import io.swagger.v3.parser.core.models.AuthorizationValue;
26-
import io.swagger.v3.core.util.Json;
25+
import io.swagger.v3.parser.core.models.ParseOptions;
26+
import org.openapitools.codegen.CliOption;
27+
import org.openapitools.codegen.ClientOptInput;
28+
import org.openapitools.codegen.ClientOpts;
29+
import org.openapitools.codegen.CodegenConfig;
30+
import org.openapitools.codegen.CodegenConfigLoader;
31+
import org.openapitools.codegen.DefaultGenerator;
2732
import org.openapitools.codegen.online.model.GeneratorInput;
2833
import org.slf4j.Logger;
2934
import org.slf4j.LoggerFactory;
@@ -34,6 +39,7 @@
3439
import java.util.ArrayList;
3540
import java.util.LinkedHashMap;
3641
import java.util.List;
42+
import java.util.Locale;
3743
import java.util.Map;
3844

3945
public class Generator {
@@ -44,7 +50,7 @@ public static Map<String, CliOption> getOptions(String language) {
4450
try {
4551
config = CodegenConfigLoader.forName(language);
4652
} catch (Exception e) {
47-
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format("Unsupported target %s supplied. %s",
53+
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, String.format(Locale.ROOT,"Unsupported target %s supplied. %s",
4854
language, e));
4955
}
5056
Map<String, CliOption> map = new LinkedHashMap<>();
@@ -77,7 +83,7 @@ public static String generateServer(String language, GeneratorInput opts) {
7783
}
7884

7985
private static String generate(String language, GeneratorInput opts, Type type) {
80-
LOGGER.debug(String.format("generate %s for %s", type.getTypeName(), language));
86+
LOGGER.debug(String.format(Locale.ROOT,"generate %s for %s", type.getTypeName(), language));
8187
if (opts == null) {
8288
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "No options were supplied");
8389
}

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.ArrayList;
2323
import java.util.HashMap;
2424
import java.util.List;
25+
import java.util.Locale;
2526
import java.util.Map;
2627
import java.util.Objects;
2728
import java.util.Set;
@@ -76,7 +77,7 @@ public class CodegenModel {
7677

7778
@Override
7879
public String toString() {
79-
return String.format("%s(%s)", name, classname);
80+
return String.format(Locale.ROOT, "%s(%s)", name, classname);
8081
}
8182

8283
@Override

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenOperation.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.HashMap;
2626
import java.util.HashSet;
2727
import java.util.List;
28+
import java.util.Locale;
2829
import java.util.Map;
2930
import java.util.Set;
3031

@@ -196,7 +197,7 @@ public boolean isRestfulCreate() {
196197
* @return true if act as Restful update method, false otherwise
197198
*/
198199
public boolean isRestfulUpdate() {
199-
return Arrays.asList("PUT", "PATCH").contains(httpMethod.toUpperCase()) && isMemberPath();
200+
return Arrays.asList("PUT", "PATCH").contains(httpMethod.toUpperCase(Locale.ROOT)) && isMemberPath();
200201
}
201202

202203
/**
@@ -205,7 +206,7 @@ public boolean isRestfulUpdate() {
205206
* @return true request method is PUT, PATCH or POST; false otherwise
206207
*/
207208
public boolean isBodyAllowed() {
208-
return Arrays.asList("PUT", "PATCH", "POST").contains(httpMethod.toUpperCase());
209+
return Arrays.asList("PUT", "PATCH", "POST").contains(httpMethod.toUpperCase(Locale.ROOT));
209210
}
210211

211212
/**
@@ -232,7 +233,7 @@ public boolean isRestful() {
232233
* @return the substring
233234
*/
234235
private String pathWithoutBaseName() {
235-
return baseName != null ? path.replace("/" + baseName.toLowerCase(), "") : path;
236+
return baseName != null ? path.replace("/" + baseName.toLowerCase(Locale.ROOT), "") : path;
236237
}
237238

238239
/**
@@ -248,7 +249,7 @@ private boolean isMemberPath() {
248249

249250
@Override
250251
public String toString() {
251-
return String.format("%s(%s)", baseName, path);
252+
return String.format(Locale.ROOT, "%s(%s)", baseName, path);
252253
}
253254

254255
@Override

0 commit comments

Comments
 (0)