В настоящее время я пытаюсь автоматически генерировать actionUrls в datatable с помощью aui.Liferay AUI createUrl() - Действие процесса отклонения
Я уже создаю ссылки, используя formator, однако, как только я пытаюсь вывести действие, используя одну из ссылок, он отклоняется и действие не выполняется. Я предполагаю, что это часть мер защиты от скриптовых сценариев.
[http-bio-8080-exec-2][SecurityPortletContainerWrapper:630] Reject process action for /c/portal/layout on functiontest_WAR_functionTestportlet
Я генерация ссылки, как это:
<aui:script>
AUI().use(
'aui-datatable',
'datatable-sort',
'datatable-paginator',
'aui-datatable-highlight',
'liferay-portlet-url',
function(A) {
var columns =[{
label : 'ID',
key : 'testVar',
allowHTML : true,
sortable : true,
formatter : function(o) {
var url = Liferay.PortletURL.createActionURL();
url.setWindowState("<%= LiferayWindowState.NORMAL.toString()%>");
url.setPortletMode("<%= LiferayPortletMode.VIEW %>");
url.setPortletId("<%= themeDisplay.getPortletDisplay().getId() %>");
url.setPlid("<%= plid %>");
url.setParameter("javax.portlet.action","actionTest");
url.setParameter("testVar",o.data.testVar);
return '<a href="'+ url +'">' + o.data.TestVar + '</a>';
}
}];
var table = new A.DataTable(
{
...
}
).render('#DataTable');
.....
</aui:script>
Кто-нибудь знает, как я могу разрешить запуск свежа сгенерированных URL'а без отключения безопасности?
С наилучшими пожеланиями Джон Смит
Это работает отлично подходит для меня спасибо. Однако, как бы я мог решить, может ли получить токен аутентификации, если бы я хотел добавить его к параметру? –
Liferay добавьте этот параметр по умолчанию, как сказано здесь: https://web.liferay.com/es/community/wiki/-/wiki/Main/Authentication+Token Если у вас есть новые пользовательские действия или портлеты, проверьте, нужно ли добавить его в белый список со следующими свойствами: "portlet.add.default.resource.check.whitelist" "portlet.add.default.resource.check.whitelist.actions" –