Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -851,6 +851,17 @@ private Map<String, Object> buildSupportFileBundle(List<Object> allOperations, L
if (hasBearerMethods(authMethods)) {
bundle.put("hasBearerMethods", true);
}

if (CodegenType.SERVER.equals(config.getTag())) {
// throw warning only for server generators
for (String key : securitySchemeMap.keySet()) {
final SecurityScheme securityScheme = securitySchemeMap.get(key);
if (SecurityScheme.Type.APIKEY.equals(securityScheme.getType()) && securityScheme.getName().contains("_")) {
// api key in underscored http header
LOGGER.warn("Security schema '" + securityScheme.getName() + "' mapped to underscored header '" + securityScheme.getName() + "' which is forbidden in Apache and Nginx webservers by default. https://stackoverflow.com/questions/22856136/why-http-servers-forbid-underscores-in-http-header-names/22856867#22856867");
}
}
}
}

List<CodegenServer> servers = config.fromServers(openAPI.getServers());
Expand Down Expand Up @@ -1114,6 +1125,28 @@ private Map<String, Object> processOperations(CodegenConfig config, String tag,
Set<String> allImports = new TreeSet<String>();
for (CodegenOperation op : ops) {
allImports.addAll(op.imports);

if (CodegenType.SERVER.equals(config.getTag())) {
// throw warning only for server generators
if (op.getHasHeaderParams()) {
List<CodegenParameter> headerParams = (List<CodegenParameter>) op.headerParams;
for (CodegenParameter param : headerParams) {
String paramBaseName = (String) param.baseName;
if (paramBaseName.contains("_")) {
LOGGER.warn("Request header parameter name '" + paramBaseName + "' contains underscore which is forbidden in Apache and Nginx webservers by default. https://stackoverflow.com/questions/22856136/why-http-servers-forbid-underscores-in-http-header-names/22856867#22856867");
}
}
}
if (op.getHasResponseHeaders()) {
List<CodegenProperty> responseHeaders = (List<CodegenProperty>) op.responseHeaders;
for (CodegenProperty prop : responseHeaders) {
String propBaseName = (String) prop.baseName;
if (propBaseName.contains("_")) {
LOGGER.warn("Response header name '" + propBaseName + "' contains underscore which is forbidden in Apache and Nginx webservers by default. https://stackoverflow.com/questions/22856136/why-http-servers-forbid-underscores-in-http-header-names/22856867#22856867");
}
}
}
}
}

List<Map<String, String>> imports = new ArrayList<Map<String, String>>();
Expand Down