mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-28 19:50:49 +00:00
Configuration option to disable HTML escaping when using Gson (#298)
* Configuration option to disable HTML escaping when using Gson The default implementation of Gson will escape certain characters by default. This includes the `=` character, which is used in base64 encoding and cause problems when deserializing the value to a base64 encoded string in a service. Adding an option for disabling this feature makes it easier to generate client code with sane defaults. * Update Petstore sample
This commit is contained in:
parent
f8e61ac914
commit
680a2bc3ec
@ -62,6 +62,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
|||||||
public static final String SUPPORT_ASYNC = "supportAsync";
|
public static final String SUPPORT_ASYNC = "supportAsync";
|
||||||
public static final String WITH_XML = "withXml";
|
public static final String WITH_XML = "withXml";
|
||||||
public static final String SUPPORT_JAVA6 = "supportJava6";
|
public static final String SUPPORT_JAVA6 = "supportJava6";
|
||||||
|
public static final String DISABLE_HTML_ESCAPING = "disableHtmlEscaping";
|
||||||
|
|
||||||
protected String dateLibrary = "threetenbp";
|
protected String dateLibrary = "threetenbp";
|
||||||
protected boolean supportAsync = false;
|
protected boolean supportAsync = false;
|
||||||
@ -93,7 +94,8 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
|||||||
protected boolean serializeBigDecimalAsString = false;
|
protected boolean serializeBigDecimalAsString = false;
|
||||||
protected String apiDocPath = "docs/";
|
protected String apiDocPath = "docs/";
|
||||||
protected String modelDocPath = "docs/";
|
protected String modelDocPath = "docs/";
|
||||||
protected boolean supportJava6 = false;
|
protected boolean supportJava6= false;
|
||||||
|
protected boolean disableHtmlEscaping = false;
|
||||||
|
|
||||||
public AbstractJavaCodegen() {
|
public AbstractJavaCodegen() {
|
||||||
super();
|
super();
|
||||||
@ -185,6 +187,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
|||||||
java8Mode.setEnum(java8ModeOptions);
|
java8Mode.setEnum(java8ModeOptions);
|
||||||
cliOptions.add(java8Mode);
|
cliOptions.add(java8Mode);
|
||||||
|
|
||||||
|
cliOptions.add(CliOption.newBoolean(DISABLE_HTML_ESCAPING, "Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -196,6 +199,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
|||||||
}
|
}
|
||||||
additionalProperties.put(SUPPORT_JAVA6, supportJava6);
|
additionalProperties.put(SUPPORT_JAVA6, supportJava6);
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey(DISABLE_HTML_ESCAPING)) {
|
||||||
|
this.setDisableHtmlEscaping(Boolean.valueOf(additionalProperties.get(DISABLE_HTML_ESCAPING).toString()));
|
||||||
|
}
|
||||||
|
additionalProperties.put(DISABLE_HTML_ESCAPING, disableHtmlEscaping);
|
||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.INVOKER_PACKAGE)) {
|
if (additionalProperties.containsKey(CodegenConstants.INVOKER_PACKAGE)) {
|
||||||
this.setInvokerPackage((String) additionalProperties.get(CodegenConstants.INVOKER_PACKAGE));
|
this.setInvokerPackage((String) additionalProperties.get(CodegenConstants.INVOKER_PACKAGE));
|
||||||
@ -1222,6 +1229,10 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
|||||||
this.supportAsync = enabled;
|
this.supportAsync = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDisableHtmlEscaping(boolean disabled) {
|
||||||
|
this.disableHtmlEscaping = disabled;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String escapeQuotationMark(String input) {
|
public String escapeQuotationMark(String input) {
|
||||||
// remove " to avoid code injection
|
// remove " to avoid code injection
|
||||||
|
@ -76,7 +76,11 @@ public class JSON {
|
|||||||
})
|
})
|
||||||
{{/parent}}
|
{{/parent}}
|
||||||
;
|
;
|
||||||
return fireBuilder.createGsonBuilder();
|
GsonBuilder builder = fireBuilder.createGsonBuilder();
|
||||||
|
{{#disableHtmlEscaping}}
|
||||||
|
builder.disableHtmlEscaping();
|
||||||
|
{{/disableHtmlEscaping}}
|
||||||
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
||||||
|
@ -64,7 +64,8 @@ public class JSON {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
return fireBuilder.createGsonBuilder();
|
GsonBuilder builder = fireBuilder.createGsonBuilder();
|
||||||
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
||||||
|
@ -64,7 +64,8 @@ public class JSON {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
return fireBuilder.createGsonBuilder();
|
GsonBuilder builder = fireBuilder.createGsonBuilder();
|
||||||
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
||||||
|
@ -64,7 +64,8 @@ public class JSON {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
;
|
;
|
||||||
return fireBuilder.createGsonBuilder();
|
GsonBuilder builder = fireBuilder.createGsonBuilder();
|
||||||
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user