Skip to content

Commit 61995b4

Browse files
committed
1 parent 5e2ddd9 commit 61995b4

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/APIConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3104,6 +3104,7 @@ public enum ConfigType {
31043104
public static final String SYNAPSE_POLICY_DEFINITION_EXTENSION_XML = ".xml";
31053105
public static final String CC_POLICY_DEFINITION_EXTENSION = ".gotmpl";
31063106
public static final String YAML_CONTENT_TYPE = "yaml";
3107+
public static final String J2_CONTENT_TYPE = "j2";
31073108
public static final String COMMON_OPERATION_POLICY_SPECIFICATIONS_LOCATION = "repository" + File.separator
31083109
+ "resources" + File.separator + "operation_policies" + File.separator + "specifications";
31093110
public static final String COMMON_OPERATION_POLICY_DEFINITIONS_LOCATION = "repository" + File.separator

components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/impl/OperationPoliciesApiServiceImpl.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ public Response addCommonOperationPolicy(InputStream policySpecFileInputStream,
9898
if (org.apache.commons.lang3.StringUtils.isBlank(fileContentType)) {
9999
fileContentType = policySpecFileDetail.getContentType().toString();
100100
}
101+
101102
if (APIConstants.YAML_CONTENT_TYPE.equals(fileContentType)) {
102103
jsonContent = CommonUtil.yamlToJson(jsonContent);
103104
}
@@ -107,6 +108,14 @@ public Response addCommonOperationPolicy(InputStream policySpecFileInputStream,
107108
.prepareOperationPolicyData(policySpecification, organization);
108109

109110
if (synapsePolicyDefinitionFileInputStream != null) {
111+
String defFileName = synapsePolicyDefinitionFileDetail.getDataHandler().getName();
112+
String defFileContentType = FilenameUtils.getExtension(defFileName);
113+
if (org.apache.commons.lang3.StringUtils.isBlank(defFileContentType)) {
114+
defFileContentType = synapsePolicyDefinitionFileDetail.getContentType().toString();
115+
}
116+
if (!APIConstants.J2_CONTENT_TYPE.equals(defFileContentType)) {
117+
throw new APIManagementException("Unsupported file type for Operation Policy");
118+
}
110119
String synapsePolicyDefinition =
111120
RestApiPublisherUtils.readInputStream(synapsePolicyDefinitionFileInputStream,
112121
synapsePolicyDefinitionFileDetail);
@@ -117,6 +126,14 @@ public Response addCommonOperationPolicy(InputStream policySpecFileInputStream,
117126
}
118127

119128
if (ccPolicyDefinitionFileInputStream != null) {
129+
String defFileName = ccPolicyDefinitionFileDetail.getDataHandler().getName();
130+
String defFileContentType = FilenameUtils.getExtension(defFileName);
131+
if (org.apache.commons.lang3.StringUtils.isBlank(defFileContentType)) {
132+
defFileContentType = ccPolicyDefinitionFileDetail.getContentType().toString();
133+
}
134+
if (!APIConstants.CC_POLICY_DEFINITION_EXTENSION.equals(defFileContentType)) {
135+
throw new APIManagementException("Unsupported file type for Operation Policy");
136+
}
120137
String choreoConnectPolicyDefinition = RestApiPublisherUtils
121138
.readInputStream(ccPolicyDefinitionFileInputStream, ccPolicyDefinitionFileDetail);
122139
ccPolicyDefinition = new OperationPolicyDefinition();

0 commit comments

Comments
 (0)