Skip to content

Commit 5d62db9

Browse files
MarinhoFeliphebrianchandotcom
authored andcommitted
LPS-144248 Avoid DoS attack
1 parent f3f79a4 commit 5d62db9

File tree

1 file changed

+37
-13
lines changed
  • modules/dxp/apps/portal-workflow/portal-workflow-kaleo-forms-web/src/main/java/com/liferay/portal/workflow/kaleo/forms/web/internal/portlet

1 file changed

+37
-13
lines changed

modules/dxp/apps/portal-workflow/portal-workflow-kaleo-forms-web/src/main/java/com/liferay/portal/workflow/kaleo/forms/web/internal/portlet/KaleoFormsAdminPortlet.java

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.liferay.portal.configuration.metatype.bnd.util.ConfigurableUtil;
3030
import com.liferay.portal.kernel.json.JSONFactoryUtil;
3131
import com.liferay.portal.kernel.json.JSONObject;
32+
import com.liferay.portal.kernel.language.LanguageUtil;
3233
import com.liferay.portal.kernel.log.Log;
3334
import com.liferay.portal.kernel.log.LogFactoryUtil;
3435
import com.liferay.portal.kernel.model.WorkflowInstanceLink;
@@ -40,6 +41,8 @@
4041
import com.liferay.portal.kernel.service.WorkflowInstanceLinkLocalService;
4142
import com.liferay.portal.kernel.servlet.SessionErrors;
4243
import com.liferay.portal.kernel.theme.ThemeDisplay;
44+
import com.liferay.portal.kernel.util.ListUtil;
45+
import com.liferay.portal.kernel.util.LocaleUtil;
4346
import com.liferay.portal.kernel.util.MimeTypesUtil;
4447
import com.liferay.portal.kernel.util.ParamUtil;
4548
import com.liferay.portal.kernel.util.Validator;
@@ -66,7 +69,10 @@
6669

6770
import java.io.IOException;
6871

69-
import java.util.Enumeration;
72+
import java.util.ArrayList;
73+
import java.util.Arrays;
74+
import java.util.List;
75+
import java.util.Locale;
7076
import java.util.Map;
7177
import java.util.Objects;
7278

@@ -377,26 +383,25 @@ protected void saveInPortletSession(
377383
*
378384
* @param resourceRequest the resource request
379385
* @param resourceResponse the resource response
380-
* @throws Exception if an exception occurred
381386
*/
382387
protected void saveInPortletSession(
383-
ResourceRequest resourceRequest, ResourceResponse resourceResponse)
384-
throws Exception {
388+
ResourceRequest resourceRequest, ResourceResponse resourceResponse) {
385389

386-
Enumeration<String> enumeration = resourceRequest.getParameterNames();
390+
Map<String, String[]> parameterMap = resourceRequest.getParameterMap();
387391

388-
while (enumeration.hasMoreElements()) {
389-
String name = enumeration.nextElement();
392+
PortletSession portletSession = resourceRequest.getPortletSession();
390393

391-
if (Objects.equals(name, "doAsUserId")) {
394+
for (String parameterName :
395+
ListUtil.concat(
396+
_getLocalizedParameterNames(), _parameterNames)) {
397+
398+
if (!parameterMap.containsKey(parameterName)) {
392399
continue;
393400
}
394401

395-
PortletSession portletSession = resourceRequest.getPortletSession();
396-
397-
String value = ParamUtil.getString(resourceRequest, name);
398-
399-
portletSession.setAttribute(name, value);
402+
portletSession.setAttribute(
403+
parameterName,
404+
ParamUtil.getString(resourceRequest, parameterName));
400405
}
401406
}
402407

@@ -519,9 +524,28 @@ protected void setDisplayContext(
519524
@Reference
520525
protected StorageEngine storageEngine;
521526

527+
private List<String> _getLocalizedParameterNames() {
528+
List<String> localizedParameters = new ArrayList<>();
529+
530+
for (Locale availableLocale : LanguageUtil.getAvailableLocales()) {
531+
localizedParameters.add(
532+
"description" + LocaleUtil.toLanguageId(availableLocale));
533+
localizedParameters.add(
534+
"name" + LocaleUtil.toLanguageId(availableLocale));
535+
}
536+
537+
return localizedParameters;
538+
}
539+
522540
private static final Log _log = LogFactoryUtil.getLog(
523541
KaleoFormsAdminPortlet.class);
524542

543+
private static final List<String> _parameterNames = Arrays.asList(
544+
"backURL", "ddmStructureId", "ddmStructureName", "ddmTemplateId",
545+
"historyKey", "kaleoProcessId", "kaleoTaskFormPairsData", "mvcPath",
546+
"redirect", "translatedLanguagesDescription", "translatedLanguagesName",
547+
"workflowDefinition");
548+
525549
@Reference
526550
private DDLExporterFactory _ddlExporterFactory;
527551

0 commit comments

Comments
 (0)